24

我有一个回溯对象,我想以调用traceback.format_exc().

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

4

5 回答 5

30

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)

其中限制默认为无。

于 2009-09-04T12:24:44.747 回答
8

您是否尝试过traceback.print_tbtraceback.format_tb

于 2009-09-04T12:25:01.067 回答
4

traceback文档给出了几个例子一整套格式化回溯对象的函数。

于 2009-09-04T12:25:50.940 回答
3

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

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

于 2021-06-27T02:39:13.627 回答
-1

也可以看看traceback.print_exc()

于 2021-09-04T13:02:41.350 回答