Module (88%)
Section (20%)

Подробнее об исключениях

Блок try-except можно расширить еще одним способом - добавив часть, начинающуюся с ключевого слова finally (это должна быть последняя ветвь кода, предназначенная для обработки исключений).

Примечание: эти два варианта (else и finally) никоим образом не зависят друг от друга, и они могут сосуществовать или вызываться независимо.

Блок finally всегда выполняется (он завершает выполнение блока try-except, отсюда его имя), независимо от того, что произошло раньше, даже при возникновении исключения, независимо от того, было оно обработано или нет.

Посмотрите на код в редакторе. Он выводит:

Everything went fine It's time to say goodbye 0.5 Division failed It's time to say goodbye None

output



Code

def reciprocal(n):
try:
n = 1 / n
except ZeroDivisionError:
print("Division failed")
n = None
else:
print("Everything went fine")
finally:
print("It's time to say goodbye")
return n


print(reciprocal(2))
print(reciprocal(0))
{{ dockerServerErrorMsg }} ×
{{ errorMsg }} ×
{{ successMsg }} ×