Module (81%)
Section (100%)

Основные тезисы


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")