3
我正在嘗試記錄導致我的進程關閉的錯誤,但traceback.print_tb
和traceback.print_exc
似乎沒有意識到引發的錯誤是什麼。在已註冊的atexit函數中獲取錯誤追蹤
換句話說,爲什麼下面的print'None \ n'而不是'DivisionByZero .. etc ..'? (編輯:..和如何從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