在Python回溯中显示更多级别的异常

时间:2012-03-19 13:04:06

标签: python exception python-3.x

我在上下文管理器中捕获异常,但是我没有看到所有级别的重新启动异常。谁知道如何改善这个?

import traceback

def f():
    try:
        raise Exception("Interesting")
    except Exception as e:
        raise Exception("Exc {} raised".format(e))

class Try():
    def __enter__(self):
        return self

    def __exit__(self, exc_type, exc_val, exc_tb):
        print("Exception {} raised".format(exc_val))
        print("".join(traceback.format_tb(exc_tb, 100)))
        return True

with Try():
    f()

在这里,我还希望在回溯中看到“有趣”异常(第5行)的代码行,但是我得到了

Exception Exc Interesting raised raised
File "try_test.py", line 19, in <module>
    f()
File "try_test.py", line 7, in f
    raise Exception("Exc {} raised".format(e))

1 个答案:

答案 0 :(得分:4)

使用traceback.format_exception代替traceback.format_tb

请参阅traceback文档。