3
私のプロセスがシャットダウンする原因となったエラーをログに記録しようとしていますが、traceback.print_tb
とtraceback.print_exc
は発生したエラーを認識していないようです。登録されたatexit関数でエラートレースバックを取得する
つまり、「DivisionByZero ..など」の代わりに「None \ n」と表示されるのはなぜですか? (編集:?..and私はexit_fn内から調達/取り扱いエラーへのアクセスを得るのですか)
import traceback, atexit
def exit_fn():
print 'exiting'
if traceback.format_exc().startswith('None'):
print 'why is this None?'
atexit.register(exit_fn)
x = 1/0
私はあなたのルーチンが呼び出された時点で、例外はすでに「扱い」されている、と信じている
これは役立ちます:http://stackoverflow.com/questions/9741351/how-to-find-exit-code-or-reason-when-atexit-callback-is-called-in-python – e9t