Я обнаружил следующее поведение, по крайней мере, странное:
def errors():
try:
ErrorErrorError
finally:
return 10
print errors()
# prints: 10
# It should raise: NameError: name 'ErrorErrorError' is not defined
Исключение исчезает, когда вы используете return
внутри предложения finally
. Это ошибка? Это где-нибудь документировано?
Но реальный вопрос (и ответ, который я буду отмечать как правильный): Какова причина разработчиков python для этого нечетного поведения?