gpt4 book ai didi

python - 在没有 sys.exc_info 的情况下从异常中获取信息

转载 作者:太空宇宙 更新时间:2023-11-04 05:29:56 24 4
gpt4 key购买 nike

我正在尝试从异常对象 err 中获取更多信息,超出其错误消息。在我的代码中,我有时会在某些子函数深处捕获异常。回到顶层,我想打印有关异常发生位置等的信息。

我见过类似的问题,其中答案涉及使用 sys.exc_info,但根据文档,这太有限了:

Return information about the most recent exception caught by an except clause in the current stack frame or in an older stack frame.

而我想从在程序执行的某个不可知点捕获和存储的任意异常对象获取此信息,并且可能在以后的点引发多个异常。

信息似乎就在那里;如果我发出 raise err 一切都会出来。但是我无法弄清楚如何在不 rais 的情况下将其从异常对象中 pry 出。我能否以某种方式捕获字符串中 raise 的输出并打印出来?

最佳答案

使用 traceback模块:

>>> import traceback
>>> try:
... raise Exception()
... except Exception as e:
... print(traceback.extract_tb(e.__traceback__))
...
[('<stdin>', 2, '<module>', None)]

(2是行号)

关于python - 在没有 sys.exc_info 的情况下从异常中获取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37438716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com