我正在构建一个工具,当异常向上传播时,会向异常中添加有关异常上下文的新数据。 问题在于,当异常到达顶层时,所有额外的上下文数据都存在,但只显示最后一个堆栈跟踪。是否有一种简单的方法可以使异常显示抛出它的原始堆栈跟踪而不是最后一个堆栈跟踪,或者我应该做类似于第一次异常传播时获取原始堆栈跟踪的事情?
例如,以下代码:
例如,以下代码:
def a():
return UNBOUND
def b():
try:
a()
except Exception as e:
raise e
b()
产生了以下异常:Traceback (most recent call last):
File "test.py", line 8, in <module>
b()
File "test.py", line 7, in b
raise e
NameError: global name 'UNBOUND' is not defined
理想情况下,我希望以某种方式向用户展示这个信息:
Traceback (most recent call last):
File "test.py", line 8, in <module>
File "test.py", line 2, in a
return UNBOUND
NameError: global name 'UNBOUND' is not defined
这会将用户指向错误最初发生的那一行。
Traceback (most recent call last): File "py3.py", line 13, in <module> b() File "py3.py", line 12, in b raise e File "py3.py", line 10, in b a() File "py3.py", line 7, in a return UNBOUND NameError: name 'UNBOUND' is not defined
- daya