:)가에 따라 올바른 또는 upvote에 고맙습니다 어떻게 코드를 작성했는지, try 문이 아마도 가장 좋은 대답 일 것입니다. 오류는 Python의 내장 된 Exception
을 상속받은 클래스 일 뿐이므로 던져진 오류에 대한 자세한 정보가 필요한 곳이면 어디든지 사용자 정의 오류를 발생시킬 수 있습니다. 오류의 이름을 바꾸거나 첫 번째 인수로 적절한 문자열을 전달하면됩니다. try
코드를 사용하고 except 문 except CustomError as e
을 사용하면 except 문에서 e에서 원하는 모든 정보를 일반 인스턴스로 가져올 수 있습니다. 예 :
def script():
try: codeblock
except Exception as e: raise Error1('You hit %s error in the first block'% e)
try: codeblock 2
except Exception as e: raise Error2('You hit %s error in the second block' % e)
try: script()
except Exception as e:
with open('path\to\file.txt','w') as outFile:
outFile.write(e)
마지막 부분은 정말 자신의 로그 파일을 만드는 것보다 더 아무것도 아니다,하지만 당신은 오른쪽 어딘가에을 작성해야합니다 :
코드는 것입니까?
위에서 언급 한 traceback
모듈을 사용하는 경우 오류 정보를 얻을 수 있습니다. 여기에 명령의 모든 당신에게 역 추적 목록을 얻을 수 있습니다 : 당신이 로그 파일을보고 피하려고하는 경우 otherhand에 http://docs.python.org/2/library/traceback.html
를, 역 추적 모듈은 같은 일을 당신에게 로그 파일을 제공하는 것입니다 다른 형식으로. 코드에 자신의 오류 문을 추가하면 실제로 일어난 일에 대해 암호문 ValueError
보다 많은 정보를 얻을 수 있습니다. 추적 오류를 특수 오류로 인쇄하면 문제에 대한 더 많은 정보를 얻을 수 있습니다.
OP는 로그를 원하지 않습니다. "그냥 추적의 로그를 보지 않고." 당신이 로깅에 대해 말하는 것처럼 들리네. 답변에 대문자와 구두법을 정확하게 입력하십시오. ([How to Answer] (http://stackoverflow.com/help/how-to-answer)에서 : "우리는 모든 대답이 완벽 할 것으로 기대하지 않지만 정확한 철자법, 구두점 및 문법을 가진 대답은 읽기보다 자주 자주 읽는 경향이 있습니다. 언제든지 언제든지 돌아가서 답변을 편집하여 개선 할 수 있습니다. ") –
정확함. 에러의 로그를 얻는 대신, 어떻게 든 트레이스 백 객체를 pickle하고 그 객체를 파일에 저장하여 새 세션에서 트레이스 백 상태를 해제하고 복구 할 수있게하는 것이 좋습니다. pdb의 post mortem이 sys.last_traceback traceback 객체를 가져 오는 것과 비슷하며 세션을 디버깅 할 수 있습니다. –