如何在Python中格式化回溯对象

时间:2009-09-04 12:19:52

标签: python object format traceback

我有一个追溯对象,我希望以调用traceback.format_exc()时得到的漂亮格式显示。

这有内置功能吗?还是几行代码?

4 个答案:

答案 0 :(得分:25)

format_exc实际上只是

    etype, value, tb = sys.exc_info()
    return ''.join(format_exception(etype, value, tb, limit))

因此,如果您准备好异常类型,值和回溯,那么应该很容易。如果您只有例外,请注意format_exception本质上是

    list = ['Traceback (most recent call last):\n']
    list = list + format_tb(tb, limit)

其中limit默认为None。

答案 1 :(得分:7)

您是否尝试过traceback.print_tbtraceback.format_tb

答案 2 :(得分:2)

traceback个文档提供了few exampleswhole set of functions来格式化回溯对象。

答案 3 :(得分:0)

在任何地方都找不到这个,所以我把它贴在这里供未来的人和我未来的自己。

try:
  raise Exception('Not an Exception')
except Exception as err:
  msg = "".join(traceback.format_exception(type(err), err, err.__traceback__))
  print(msg)

这会接受您的异常并提供与 python 的默认异常打印机/print_tb 格式相同的字符串