python traceback - 如何引发异常并保留堆栈
python traceback - how to raise an exception and keep the stack
我有 2 个模块:
a.py:
import b
import traceback
try:
print b.get_val(1)
except Exception as ex:
traceback.print_stack()
print ex
问题是堆栈跟踪没有说明 b.py 的哪一行引发了异常。如果存在实际的 运行 时间错误,也会发生这种情况。
对如何显示整个堆栈有什么想法吗?
b.py
def get_val(val):
print 'hi'
raise Exception('Bad value')
尝试 traceback.print_exc()
而不是 traceback.print_stack()
traceback.print_stack()
输出:
hi
File "a.py", line 6, in <module>
traceback.print_stack()
Bad value
traceback.print_exc()
输出:
hi
Traceback (most recent call last):
File "a.py", line 4, in <module>
print b.get_val(1)
File "C:\Users\Ahmed\Desktop\SOF\b.py", line 3, in get_val
raise Exception('Bad value')
Exception: Bad value
Bad value
我有 2 个模块:
a.py:
import b
import traceback
try:
print b.get_val(1)
except Exception as ex:
traceback.print_stack()
print ex
问题是堆栈跟踪没有说明 b.py 的哪一行引发了异常。如果存在实际的 运行 时间错误,也会发生这种情况。 对如何显示整个堆栈有什么想法吗?
b.py
def get_val(val):
print 'hi'
raise Exception('Bad value')
尝试 traceback.print_exc()
而不是 traceback.print_stack()
traceback.print_stack()
输出:
hi
File "a.py", line 6, in <module>
traceback.print_stack()
Bad value
traceback.print_exc()
输出:
hi
Traceback (most recent call last):
File "a.py", line 4, in <module>
print b.get_val(1)
File "C:\Users\Ahmed\Desktop\SOF\b.py", line 3, in get_val
raise Exception('Bad value')
Exception: Bad value
Bad value