2009-12-23 4 views
4

예외가 발생하고 catch 된 다음 except 블록 내에 다시 발생하는 시나리오가있는 경우 발생시킨 초기 스택 프레임을 캡처하는 방법이 있습니까?이중으로 발생하는 예외 예외 검색 파이썬에서의 원래 스택 추적

파이썬 종료로 인쇄되는 스택 추적은 예외가 두 번째로 발생하는 장소를 설명합니다. 예외가 발생 된 스택 프레임이 원래 표시되도록 예외를 발생시키는 방법이 있습니까?

답변

11

은 다음과 같이 다시 예외 인스턴스를 지정하여 예외를 다시 높이기 위해 일반적인 실수 :

except Exception, ex: 
    # do something 
    raise ex 

이 원래 역 추적 정보를 스트립하고 새로운 하나를 시작합니다. 당신이 대신 할 일은 명시 적으로 예외를 지정하지 않고,이된다 (즉은 "베어"raise 사용) :

except Exception, ex: 
    # do something 
    raise 

이 스택 트레이스의 모든 원래의 정보를 유지합니다. 다소 도움이되는 배경은 this section in the docs을 참조하십시오.

+0

이것은 내가 원하는 것입니다! 감사! – user196835

관련 문제