Tôi đang xây dựng một công cụ khi ngoại lệ lan truyền trở lên, dữ liệu mới về ngữ cảnh ngoại lệ sẽ được thêm vào ngoại lệ. Vấn đề là, vào thời điểm ngoại lệ được đưa lên cấp cao nhất, tất cả dữ liệu ngữ cảnh bổ sung đều ở đó, nhưng chỉ hiển thị dấu vết ngăn xếp mới nhất. Có cách nào dễ dàng để có ngoại lệ cho thấy dấu vết ngăn xếp ban đầu trong đó nó được ném thay vì dấu vết ngăn xếp cuối cùng hay tôi nên làm một cái gì đó như lấy dấu vết ngăn xếp ban đầu lần đầu tiên ngoại lệ lan truyền?Tuyên truyền ngoại lệ của Python
Ví dụ, đoạn mã sau:
def a():
return UNBOUND
def b():
try:
a()
except Exception as e:
raise e
b()
mang lại các ngoại lệ sau đây:
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
nơi, lý tưởng, tôi muốn bằng cách nào đó hiển thị các thành viên này:
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
Vì điều đó hướng người dùng đến dòng mà lỗi xảy ra ban đầu.