Python:如何格式化回溯对象

ola*_*ndo 21 python format object traceback

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

这有内置函数吗?还是几行代码?

Mar*_*wis 25

format_exc真的很公正

    etype, value, tb = sys.exc_info()
    return ''.join(format_exception(etype, value, tb, limit))
Run Code Online (Sandbox Code Playgroud)

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

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

其中limit默认为None.

  • 我想我是唯一一个不理解这个答案的人......这个答案没有说明在哪里导入`format_tb`,而是使用内置的`list`作为变量。而且我仍然不明白如何打印回溯。 (5认同)

小智 5

在任何地方都找不到这个,所以我将其发布在这里,供未来的人和我未来的自己。

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

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