207 division_calculator.py print(5/0)
Конечно, из этого ничего не выйдет, поэтому на экран выводятся данные трасси-
ровки:
Traceback (most recent call last):
File "division.py", line 1, in print(5/0)
❶
ZeroDivisionError: division by zero
Ошибка, упоминаемая в трассировке
, —
ZeroDivisionError
— является объектом
исключения. Такие объекты создаются в том случае, если Python не может выпол-
нить ваши распоряжения. Обычно в таких случаях Python прерывает выполнение
программы и сообщает тип обнаруженного исключения. Эта информация может
использоваться в программе; по сути, вы сообщаете Python, как следует поступить
при возникновении исключения данного типа. В таком случае ваша программа
будет подготовлена к его появлению.
Блоки try-except
Если вы предполагаете, что в программе может произойти ошибка, напишите блок
try
-
except
для обработки возникающего исключения. Такой блок приказывает
Python выполнить некоторый код, а также сообщает, что нужно делать, если при
его выполнении произойдет исключение конкретного типа.
Вот как выглядит блок
try
-
except
для обработки исключений
ZeroDivisionError
:
try:
print(5/0)
except ZeroDivisionError:
print("You can't divide by zero!")
Команда
print(5/0)
, порождающая ошибку, находится в блоке
try
. Если код в бло-
ке
try
выполнен успешно, то Python пропускает блок
except
. Если код в блоке
try
порождает ошибку, то Python ищет блок
except
с соответствующей ошибкой
и выпускает код в этом блоке.
В этом примере код блока
try
порождает ошибку
ZeroDivisionError
, поэтому
Python ищет блок
except
с описанием того, как следует действовать в такой ситу-
ации. При выполнении кода этого блока пользователь видит понятное сообщение
об ошибке вместо данных трассировки:
You can't divide by zero!
Если за кодом
try
-
except
следует другой код, то выполнение программы продол-
жится, потому что мы объяснили Python, как обрабатывать эту ошибку. В следу-
ющем примере обработка ошибки позволяет программе продолжить выполнение.