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

问题描述 投票:0回答:5

我有一个回溯对象,我想以调用

traceback.format_exc()
时获得的良好格式显示。

有内置函数吗?或者几行代码?

python object format traceback
5个回答
39
投票

format_exc()
真的只是

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

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

format_exception()
本质上是:

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

其中

limit
默认为
None


示例:

进一步帮助澄清

format_exc()
的(简单)应用:

import traceback

try:
    # Some code
except Exception:
   print('\nThe following error occurred:\n',
         traceback.format_exc(),
         'Processing aborted.\n',
         sep='\n')
   # sys.exit(1)

9
投票

7
投票

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

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


4
投票

traceback
文档给出了几个示例整套函数用于格式化回溯对象。


-1
投票
© www.soinside.com 2019 - 2024. All rights reserved.