In [1]:
# print(1 / 0)
# ZeroDivisionError: division by zero

In [2]:
try:
    print(1 / 0)
except ZeroDivisionError:
    print('Error')


Error

In [3]:
try:
    print(1 / 0)
except ZeroDivisionError as e:
    print(e)
    print(type(e))


division by zero
<class 'ZeroDivisionError'>

In [4]:
try:
    for i in [-2, -1, 0, 1, 2]:
        print(1 / i)
except ZeroDivisionError as e:
    print(e)


-0.5
-1.0
division by zero

In [5]:
def divide(a, b):
    try:
        print(a / b)
    except ZeroDivisionError as e:
        print('catch ZeroDivisionError:', e)

In [6]:
divide(1, 0)


catch ZeroDivisionError: division by zero

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)


catch ZeroDivisionError: division by zero

In [10]:
divide_each('a', 'b')


catch TypeError: unsupported operand type(s) for /: 'str' and 'str'

In [11]:
def divide_same(a, b):
    try:
        print(a / b)
    except (ZeroDivisionError, TypeError) as e:
        print(e)

In [12]:
divide_same(1, 0)


division by zero

In [13]:
divide_same('a', 'b')


unsupported operand type(s) for /: 'str' and 'str'

In [14]:
def divide_wildcard(a, b):
    try:
        print(a / b)
    except:
        print('Error')

In [15]:
divide_wildcard(1, 0)


Error

In [16]:
divide_wildcard('a', 'b')


Error

In [17]:
def divide_exception(a, b):
    try:
        print(a / b)
    except Exception as e:
        print(e)

In [18]:
divide_exception(1, 0)


division by zero

In [19]:
divide_exception('a', 'b')


unsupported operand type(s) for /: 'str' and 'str'

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)


0.5
finish (no error)

In [22]:
divide_else(1, 0)


catch ZeroDivisionError: division by zero

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)


0.5
all finish

In [25]:
divide_finally(1, 0)


catch ZeroDivisionError: division by zero
all finish

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)


0.5
finish (no error)
all finish

In [28]:
divide_else_finally(1, 0)


catch ZeroDivisionError: division by zero
all finish

In [29]:
def divide_pass(a, b):
    try:
        print(a / b)
    except ZeroDivisionError:
        pass

In [30]:
divide_pass(1, 0)