Исключения: продолжение
Не забывайте следующее:
- ветви
except
ищутся в том же порядке, в котором они появляются в коде; - Вы не должны использовать более одной ветки except с определенным именем исключения;
- количество различных ветвей
except
произвольно - единственное условие - если Вы используетеtry
, Вы должны указать хотя бы одинexcept
(определенный или нет) после него; - ключевое слово
except
нельзя использовать без предшествующегоtry
; - если выполняется какая-либо из ветвей
except
, никакие следующие ветки не будут посещаться; - если ни одна из указанных ветвей
except
не соответствует созданному исключению, исключение остается необработанным (мы обсудим это в ближайшее время); - если существует неназванная ветвь
except
(одна без имени исключения), она должна быть указана как последняя.
try:
:
except exc1:
:
except exc2:
:
except:
:
Давайте продолжим эксперименты.
Посмотрите на код в редакторе. Предыдущая программа была изменена - мы удалили ветку ZeroDivisionError
.
Что происходит сейчас, если пользователь вводит 0
?
Поскольку нет отдельных ветвей для деления на ноль, созданное исключение попадает в общую (неназванную) ветвь; это означает, что в этом случае программа скажет:
Oh dear, something went wrong...
THE END.
output
Попробуйте сами. Запустите программу.