在已注册的atexit函数中获取错误回溯

时间:2012-01-26 21:21:06

标签: python traceback atexit

我正在尝试记录导致我的进程关闭的错误,但traceback.print_tbtraceback.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

1 个答案:

答案 0 :(得分:1)

我相信,当您的例程被调用时,异常已被“处理​​”(至少在我运行您的代码时,即使我删除了您打印的调用,我也会看到一个追溯),所以那时没有格式化。

相关问题