Исключение - это классы
Все предыдущие примеры были удовлетворены обнаружением определенного вида исключения и соответствующим образом реагировали на него. Теперь мы собираемся углубиться и заглянуть внутрь самого исключения.
Вероятно, Вы не удивитесь, узнав, что исключения являются классами. Кроме того, когда возникает исключение, объект класса создается и проходит все уровни выполнения программы, ища ветвь исключения, которая готова к нему.
Такой объект несет некоторую полезную информацию, которая может помочь вам точно определить все аспекты ожидающей ситуации. Для достижения этой цели Python предлагает специальный вариант предложений исключениях - его можно найти в редакторе.
Как видите, оператор except
расширен и содержит дополнительную фразу, начинающуюся с ключевого слова as
, за которым следует идентификатор. Идентификатор предназначен для перехвата объекта исключения, чтобы вы могли проанализировать его природу и сделать правильные выводы.
Примечание: область видимости идентификатора охватывает его ветвь except
и не идет дальше.
В примере представлен очень простой способ использования полученного объекта - просто его вывод (как Вы можете видеть, вывод производится методом __str__()
) и содержит краткое сообщение с описанием причины.
То же сообщение будет напечатано, если в коде нет подходящего блока except
, и Python вынужден обрабатывать только его.