Module (78%)
Section (83%)

Исключения: продолжение

Не забывайте следующее:

  • ветви 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

Попробуйте сами. Запустите программу.



Code

try:
x = int(input("Enter a number: "))
y = 1 / x
print(y)
except ValueError:
print("You must enter an integer value.")
except:
print("Oh dear, something went wrong...")

print("THE END.")
{{ dockerServerErrorMsg }} ×
{{ errorMsg }} ×
{{ successMsg }} ×