2016-11-28 46 views
1

我有2个模块:蟒蛇回溯 - 如何引发异常,并保持栈

a.py:

import b 
import traceback 
try: 
    print b.get_val(1) 
except Exception as ex: 
    traceback.print_stack() 
    print ex 

的问题是,堆栈跟踪不说B的whick线。 py提出了例外。如果存在实际运行时错误,也会发生这种情况。 任何想法如何显示整个堆栈?

b.py

def get_val(val): 
    print 'hi' 
    raise Exception('Bad value') 
+0

我T的蟒蛇2.7 – max

回答

2

尝试的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

好的答案。我也想在这里提到异常链接[(PEP 3134)](https://www.python.org/dev/peps/pep-3134/)作为一些Python 3的胡萝卜。 – wim