1try:
2 someFunction()
3except Exception as ex:
4 template = "An exception of type {0} occurred. Arguments:\n{1!r}"
5 message = template.format(type(ex).__name__, ex.args)
6 print (message)
1try:
2 # Dangerous stuff
3except ValueError:
4 # If you use try, at least 1 except block is mandatory!
5 # Handle it somehow / ignore
6except (BadThingError, HorrbileThingError) as e:
7 # Hande it differently
8except:
9 # This will catch every exception.
10else:
11 # Else block is not mandatory.
12 # Dangerous stuff ended with no exception
13finally:
14 # Finally block is not mandatory.
15 # This will ALWAYS happen after the above blocks.
1>>> def catch():
2... try:
3... asd()
4... except Exception as e:
5... print e.message, e.args
6...
7>>> catch()
8global name 'asd' is not defined ("global name 'asd' is not defined",)
1try:
2 print("I will try to print this line of code")
3except ERROR_NAME:
4 print("I will print this line of code if error ERROR_NAME is encountered")
1import sys
2
3try:
4 f = open('myfile.txt')
5 s = f.readline()
6 i = int(s.strip())
7except OSError as err:
8 print("OS error: {0}".format(err))
9except ValueError:
10 print("Could not convert data to an integer.")
11except:
12 print("Unexpected error:", sys.exc_info()[0])
13 raise
1>>> def divide(x, y):
2... try:
3... result = x / y
4... except ZeroDivisionError:
5... print("division by zero!")
6... else:
7... print("result is", result)
8... finally:
9... print("executing finally clause")
10...
11>>> divide(2, 1)
12result is 2.0
13executing finally clause
14>>> divide(2, 0)
15division by zero!
16executing finally clause
17>>> divide("2", "1")
18executing finally clause
19Traceback (most recent call last):
20 File "<stdin>", line 1, in <module>
21 File "<stdin>", line 3, in divide
22TypeError: unsupported operand type(s) for /: 'str' and 'str'
23