Найти в Дзене
IT для всех

Python. Как обрабатывать ошибки? (try и except)

Для того, чтобы следить за появлением ошибок, существуют исключения.

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

Рекомендуется их использование везде, где код может не сработать. Так мы не сможем избежать исключений, но крайней мере будем контролировать их появление.

При отсутствии обработчика исключений, исключение будет всплывать до тех пор, пока не будет поймано обработчиком исключений.

Данный код показывает генерацию исключения и обработчик исключения из стандартной библиотеки Python:

Здесь ключевым словом исключения является IndexError. Теперь мы можем сами его обработать.

Исключения иерархичны и выглядят так:

BaseException
+– SystemExit
+– KeyboardInterrupt
+– GeneratorExit
+– Exception
     +– StopIteration
     +– StopAsyncIteration
     +– ArithmeticError
     |    +– FloatingPointError
     |    +– OverflowError
     |    +– ZeroDivisionError
     +– AssertionError
     +– AttributeError
     +– BufferError
     +– EOFError
     +– ImportError
          +– ModuleNotFoundError...

Полный список с описанием каждого можно найти в документации

Синтаксис обработчика исключений:

-2

Еxcept может принимать в качестве аргументов названия исключений из иерархии выше. Так мы можем реагировать на конкретные исключения конкретными действиями.

Обработчик исключений для общего случая ошибки(когда except без аргументов) будет контролировать появление любых исключений, и избегать « падения » программы:

-3

Здесь мы обработали любое возникшее исключение без конкретизации.

Можно найти нужное нам исключение(IndexError) и использовать вместе с except:

-4

Теперь я обработал именно то исключение, которое возникло. Здесь выводится оно же с подписью: Ошибка... чтобы понять суть исключения.