2017-12-19 22 views
-1

stackoverflow answer을 확장하여 함수 수준에서 오류를 찾을 수 있습니까?함수에서 오류를 찾기 위해 예외 발생

필자가 작성한 함수를 호출하는 코드를 작성했습니다.

함수에서 오류가 발생하는 곳을 찾을 수 없습니다. Spyder에서 디버깅 도구를 사용해 보았지만 문제를 추적하지 못했습니다.

위의 대답에 코드를 포함하도록 try-except 문을 업데이트했지만 함수를 호출하는 코드에서만 행 번호를 찾습니다.

+0

코드를 게시하는 것이 좋습니다. – Ivan86

+0

어쩌면 함수를 호출하는 행이 오류가있는 위치일까요? –

+0

블랭킷을 'except'로 사용했기 때문에 훌륭한 답변이 아니므로 예외가 실제로 발생했는지 전혀 알 수 없습니다. 쉬운 대답은 당신의 try/except를 없애고 스택 추적을 참조하십시오. – roganjosh

답변

2

그러나

import traceback 

def function(): 
    print("A") 
    print(5/0) 
    print("C") 

try: 
    print("A") 
    function() 
    print("B") 
except: 
    traceback.print_exc() 

, 나는 @ roganjosh의 의견에 동의 : 나는 시도/캐치를 제거하는 것이며, 예외가 생성 된 위치를 올리도록하여 코드를 디버그하십시오.

+0

'traceback'이 대우를 받아 주셔서 감사합니다! – jlt199

0

당신이 그런 식으로 예외를 발생시킬 수 있습니다

try: 
    do_importamt_staff() #your code 
except: 
    import traceback 
    s = traceback.format_exc() 
    send_error_message_to_responsible_adult(s) 
    raise 

이 코드는 "오류 기능"(오류를하고있는 하나)로 이동합니다.

여기 파이썬에서 예외에 읽을 수 있습니다 : 당신은 항상 역 추적 사용할 수 있습니다 https://www.codementor.io/sheena/how-to-write-python-custom-exceptions-du107ufv9