Еще один вопрос по Python.Я знаком с концепцией try – except – finally
.Что я хотел бы знать: можно ли вызвать какую-то заключительную процедуру очистки, когда программа выдает ошибку, где бы то ни было?Например, давайте предположим, что моя программа вызывает несколько подпрограмм, и некоторые из этих подпрограмм имеют оператор try-exc.
def fun_a(x):
do something
try:
something
except ValueError as e:
raise e
def fun_b(x):
do something different
try:
something different
except ValueError as e:
raise e
fun_a()
fun_b()
# OnError:
finally:
clean_up(temporary_files)
Вместо того, чтобы вставлять одну и ту же процедуру очистки в каждую попытку-исключая область действия, я хотел бычтобы вызвать его в конце моего основного сценария, если где-то произошла ошибка.Или это единственный способ заключить все в функцию main
и снова поместить ее в блок try-кроме-finally?
Заранее спасибо за помощь,
Markus