Module (87%)
Section (10%)

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

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

Прежде чем мы углубимся в объектную грань исключений, мы хотим показать Вам некоторые синтаксические и семантические аспекты того, как Python обрабатывает блок try-exept, поскольку он предлагает немного больше, чем что мы показали до этого.

Первая особенность, которую мы хотим обсудить здесь, - это дополнительная возможная ветвь, которая может быть размещена внутри (или, скорее, непосредственно позади) блока try-exept - это часть кода, начинающаяся с else - так же, как в примере в редакторе.


Код, помеченный таким образом, выполняется, тогда (и только тогда ) не возникло никаких исключений в части try:. Можно сказать, что после try может быть выполнена ровно одна ветвь - либо та, которая начинается с exept (не забывайте, что может быть несколько ветвей такого рода) или та, которая начинается с else.

Примечание. Ветвь else: должна располагаться после последней ветки exept.

Код дает следующий вывод:

Everything went fine 0.5 Division failed None

output



Code

def reciprocal(n):
try:
n = 1 / n
except ZeroDivisionError:
print("Division failed")
return None
else:
print("Everything went fine")
return n


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