Ловить исключения

Используйте try...except: перехватывать исключения. Вы должны указать как можно более точное исключение:

 try:
    x = 5 / 0
except ZeroDivisionError as e:
    # `e` is the exception object
    print("Got a divide by zero! The exception was:", e)
    # handle exceptional case
    x = 0  
finally:
    print "The END"
    # it runs no matter what execute.

 

Класс исключения , который указан - в данном случае, ZeroDivisionError - перехватывает любое исключение, которое из этого класса или любого подкласса этого исключения.

Например, ZeroDivisionError подкласс ArithmeticError :

 >>> ZeroDivisionError.__bases__
(<class 'ArithmeticError'>,)

 

Итак, следующий будет еще поймать ZeroDivisionError :

 try:
    5 / 0
except ArithmeticError:
    print("Got arithmetic error")