2016-11-28 47 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