Chcę wiedzieć, czy skrypt w języku Python kończy się poprawnie, czy nie. Do tego używam atexit
, ale problem polega na tym, że nie wiem, jak rozróżnić, czy został wywołany atexit z sys.exit (0) lub niezerowy lub wyjątek.Jak znaleźć kod wyjścia lub powód, gdy wywołanie zwrotne atexit jest wywoływane w Pythonie?
Powód: jeśli program zakończy się poprawnie, nie zrobi nic, tylko jeśli program zakończy się wyjątkiem lub zwróci kod błędu (status wyjścia) inny niż zero. Chcę wywołać pewne działanie.
Jeśli zastanawisz się, dlaczego nie używam metody try/finally, to chcę dodać to samo zachowanie dla kilkunastu skryptów importujących wspólny moduł. Zamiast modyfikować wszystkie z nich, chcę dodać atexit() do importowanego modułu i uzyskać to zachowanie za darmo we wszystkich z nich.
Co chcesz osiągnąć? Dlaczego nie po prostu użyć właściwej obsługi błędów? –