Обработка исключений - финальная процедура для всего сценария - PullRequest
0 голосов
/ 26 сентября 2018

Еще один вопрос по 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

...