Для любого возможного блока try-finally в Python гарантируется, что блок finally
всегда будет выполнен?
Например, скажем, я возвращаюсь в блок except
:
try:
1/0
except ZeroDivisionError:
return
finally:
print("Does this code run?")
Или, может быть, я повторно подниму Exception
:
try:
1/0
except ZeroDivisionError:
raise
finally:
print("What about this code?")
Тестирование показывает, что, finally
выполняется исполнение для приведенных выше примеров, но я полагаю, что есть другие сценарии, о которых я не думал.
Существуют ли сценарии, в которых блок finally
может не выполняться в Python?