我正在尝试记录导致我的进程关闭的错误,但traceback.print_tb
和traceback.print_exc
似乎没有意识到引发的错误是什么。
换句话说,为什么以下打印'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
答案 0 :(得分:1)
我相信,当您的例程被调用时,异常已被“处理”(至少在我运行您的代码时,即使我删除了您打印的调用,我也会看到一个追溯),所以那时没有格式化。