Механизм исключений

Для управления ошибками, возникающими в ходе выполнения программы, в Python используются специальные объекты, называемые исключениями. Если при возникновении ошибки Python не знает, что делать дальше, создается объект исключения. Если в программу включен код обработки исключения, то выполнение программы продолжится, а если нет - программа останавливается и выводит трассировку с отчетом об исключении.

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

Блоки try-except

Если вы предполагаете, что в программе может произойти ошибка, напишите блок try-except для обработки возникающего исключения. Такой блок приказывает Python выполнить некоторый код, а также сообщает, что нужно делать, если при его выполнении произойдет исключение конкретного типа.

Приведем пример блока для обработки ошибки деления на ноль

try:
    print(5 / 0)
except ZeroDivisionError:
    print("Division by zero!")

Команда print(5 / 0) порождающая ошибку, находится в блоке try. Если код в блоке try выполнен успешно, то Python пропускает блок except. Если код в блоке try порождает ошибку, то Python ищет блок except с соответствующей ошибкой и выпускает код в этом блоке.

В этом примере кода блока try порождает ошибку ZeroDivisionError, поэтому Python ищет блок except с описанием того, как следует действовать в такой ситуации. При выполнении кода этого блока пользователь видит понятное сообщение вместо данных трассировки.

Если за кодом try-except следует другой код, то выполнение программы продолжится, потому что мы объяснили Python, как обрабатывать эту ошибку.

Использование исключений для предотвращения аварийного завершения программы

Правильная обработка ошибок особенно важна в том случае, если программа должна продолжить работу

Last updated