2016-11-28 5 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의 할말을 테잎 라인을 말을하지 않는다는 것입니다. py가 예외를 발생 시켰습니다. 실제 런타임 오류가있는 경우에도 발생합니다. 전체 스택을 표시하는 방법에 대한 아이디어가 있으십니까?

b.py

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

I을 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

좋은 대답. 나는 또한 여기에 Python 3을위한 당근 비트로 예외 체인 ([PEP 3134]) (https://www.python.org/dev/peps/pep-3134/)을 언급하고자한다. – wim