Ответ 1
Если предложение finally возвращает другое исключение или выполняет оператор return или break, сохраненное исключение теряется.
Почему исключение в foo
whiz незаметно, но возникает исключение в bar
?
def foo():
try:
raise Exception('foo')
finally:
return
def bar():
try:
raise Exception('bar')
finally:
pass
foo()
bar()
Если предложение finally возвращает другое исключение или выполняет оператор return или break, сохраненное исключение теряется.