Module (89%)
Section (30%)

Исключение - это классы

Все предыдущие примеры были удовлетворены обнаружением определенного вида исключения и соответствующим образом реагировали на него. Теперь мы собираемся углубиться и заглянуть внутрь самого исключения.

Вероятно, Вы не удивитесь, узнав, что исключения являются классами. Кроме того, когда возникает исключение, объект класса создается и проходит все уровни выполнения программы, ища ветвь исключения, которая готова к нему.

Такой объект несет некоторую полезную информацию, которая может помочь вам точно определить все аспекты ожидающей ситуации. Для достижения этой цели Python предлагает специальный вариант предложений исключениях - его можно найти в редакторе.

Как видите, оператор except расширен и содержит дополнительную фразу, начинающуюся с ключевого слова as, за которым следует идентификатор. Идентификатор предназначен для перехвата объекта исключения, чтобы вы могли проанализировать его природу и сделать правильные выводы.

Примечание: область видимости идентификатора охватывает его ветвь except и не идет дальше.

В примере представлен очень простой способ использования полученного объекта - просто его вывод (как Вы можете видеть, вывод производится методом __str__()) и содержит краткое сообщение с описанием причины.

То же сообщение будет напечатано, если в коде нет подходящего блока except, и Python вынужден обрабатывать только его.



Code

try:
i = int("Hello!")
except Exception as e:
print(e)
print(e.__str__())
{{ dockerServerErrorMsg }} ×
{{ errorMsg }} ×
{{ successMsg }} ×