Catching exceptions
- try
- except
- finally
def divide(x, y):
return x/y
def main():
cnt = 6
for num in [2, 0, 'a']:
try:
divide(cnt, num)
except ZeroDivisionError:
pass
except (IOError, MemoryError) as err:
print(err)
else:
print("This will run if there was no exception at all")
finally:
print("Always executes. {}/{} ended.".format(cnt, num))
print("done")
main()
Output:
This will run if there was no exception at all
Always executes. 6/2 ended.
Always executes. 6/0 ended.
Always executes. 6/a ended.
Traceback (most recent call last):
File "try.py", line 22, in <module>
main()
File "try.py", line 9, in main
divide(cnt, num)
File "try.py", line 3, in divide
return x/y
TypeError: unsupported operand type(s) for /: 'int' and 'str'