Я хочу знать, правильно ли завершен сценарий Python. Для этого я использую atexit
, но проблема в том, что я не знаю, как дифференцироваться, если atexit был вызван с помощью sys.exit (0) или non zero или exception.Как найти код выхода или причину, когда callback atexit вызывается в Python?
Причина: если программа заканчивается правильно, она ничего не сделает, но если программа закончится исключением или вернет код ошибки (статус выхода), отличный от нуля, я хочу вызвать какое-либо действие.
Если вы задаетесь вопросом, почему я не использую try/finally, это потому, что я хочу добавить такое же поведение для дюжины сценариев, которые импортируют общий модуль. Вместо того, чтобы модифицировать их все, я хочу добавить хакеры atexit() к импортируемому модулю и получить это поведение бесплатно во всех них.
Что вы хотите достичь? Почему бы просто не использовать правильную обработку ошибок? –