In [1]:
# print(1 / 0)
# ZeroDivisionError: division by zero
In [2]:
try:
print(1 / 0)
except ZeroDivisionError:
print('Error')
In [3]:
try:
print(1 / 0)
except ZeroDivisionError as e:
print(e)
print(type(e))
In [4]:
try:
for i in [-2, -1, 0, 1, 2]:
print(1 / i)
except ZeroDivisionError as e:
print(e)
In [5]:
def divide(a, b):
try:
print(a / b)
except ZeroDivisionError as e:
print('catch ZeroDivisionError:', e)
In [6]:
divide(1, 0)
In [7]:
# divide('a', 'b')
# TypeError: unsupported operand type(s) for /: 'str' and 'str'
In [8]:
def divide_each(a, b):
try:
print(a / b)
except ZeroDivisionError as e:
print('catch ZeroDivisionError:', e)
except TypeError as e:
print('catch TypeError:', e)
In [9]:
divide_each(1, 0)
In [10]:
divide_each('a', 'b')
In [11]:
def divide_same(a, b):
try:
print(a / b)
except (ZeroDivisionError, TypeError) as e:
print(e)
In [12]:
divide_same(1, 0)
In [13]:
divide_same('a', 'b')
In [14]:
def divide_wildcard(a, b):
try:
print(a / b)
except:
print('Error')
In [15]:
divide_wildcard(1, 0)
In [16]:
divide_wildcard('a', 'b')
In [17]:
def divide_exception(a, b):
try:
print(a / b)
except Exception as e:
print(e)
In [18]:
divide_exception(1, 0)
In [19]:
divide_exception('a', 'b')
In [20]:
def divide_else(a, b):
try:
print(a / b)
except ZeroDivisionError as e:
print('catch ZeroDivisionError:', e)
else:
print('finish (no error)')
In [21]:
divide_else(1, 2)
In [22]:
divide_else(1, 0)
In [23]:
def divide_finally(a, b):
try:
print(a / b)
except ZeroDivisionError as e:
print('catch ZeroDivisionError:', e)
finally:
print('all finish')
In [24]:
divide_finally(1, 2)
In [25]:
divide_finally(1, 0)
In [26]:
def divide_else_finally(a, b):
try:
print(a / b)
except ZeroDivisionError as e:
print('catch ZeroDivisionError:', e)
else:
print('finish (no error)')
finally:
print('all finish')
In [27]:
divide_else_finally(1, 2)
In [28]:
divide_else_finally(1, 0)
In [29]:
def divide_pass(a, b):
try:
print(a / b)
except ZeroDivisionError:
pass
In [30]:
divide_pass(1, 0)