Основные тезисы
1. Исключение - это событие во время выполнения программы, вызванное нештатной ситуацией. Исключение следует обработать, чтобы избежать остановки программы. Часть Вашего кода, которая предположительно является источником исключения, должна быть помещена в ветку try
.
Когда возникает исключение, выполнение кода не прекращается, а вместо этого переходит в ветвь except
. Это место, где должна происходить обработка исключения. Общая схема такой конструкции выглядит следующим образом:
:
# The code that always runs smoothly.
:
try:
:
# Risky code.
:
except:
:
# Crisis management takes place here.
:
:
# Back to normal.
:
2. Если Вам нужно обработать несколько исключений, исходящих из одной и той же ветки try
, Вы можете добавить более одной ветки except
, но Вы должны пометить их разными именами исключений, нравится:
:
# The code that always runs smoothly.
:
try:
:
# Risky code.
:
except Except_1:
# Crisis management takes place here.
except Except_2:
# We save the world here.
:
# Back to normal.
:
В лучшем случае выполняется одна из ветвей except
- ни одна из ветвей не выполняется, если возникшее исключение не соответствует ни одному из указанных исключений.
3. Вы не можете добавить более одной анонимной (безымянной) ветки except
после названных.
:
# The code that always runs smoothly.
:
try:
:
# Risky code.
:
except Except_1:
# Crisis management takes place here.
except Except_2:
# We save the world here.
except:
# All other issues fall here.
:
# Back to normal.
:
Упражнение 1
Каков ожидаемый вывод следующего кода?
try:
print("Let's try to do this")
print("#"[2])
print("We succeeded!")
except:
print("We failed")
print("We're done")
Упражнение 2
Каков ожидаемый вывод следующего кода?
try:
print("alpha"[1/0])
except ZeroDivisionError:
print("zero")
except IndexingError:
print("index")
except:
print("some")