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