Исключения: продолжение
Инструкция raise
может также использоваться следующим образом (обратите внимание на отсутствие названия исключения):
raise
Есть одно серьезное ограничение: этот вид инструкции raise
может использоваться только внутри ветви except
; использование его в любом другом контексте приводит к ошибке.
Инструкция немедленно вызовет то же исключение, что и обрабатываемое в настоящий момент.
Благодаря этому Вы можете распределять обработку исключений по различным частям кода.
Посмотрите на код в редакторе. Запустите его - мы увидим это в действии.
ZeroDivisionError вызвано дважды:
- первый раз - внутри блока
try
(это вызвано фактическим делением на ноль); - второй - внутри блока
except
с помощью инструкцииraise
.
По сути, код выводит:
I did it again!
I see!
THE END.
output