2011-11-29 6 views
0

일반적으로 당신이 파이썬 프로그램이 스택 추적의 마지막 라인 (보통 표준 오류) 인쇄 할 수 날 것으로 보인다 예 :올리기 오류가

IOError: Error reading file 'b'plunk'': b'failed to load external entity "plunk"' 

나는이 솔루션을 가지고 :

def print_error(ex:Exception, file) -> None: 
    print('{0}: {1}'.format(ex.__class__.__name__, ex), file=file) 

사용 예제 :

try: 
    crash in some manner 
except Exception as ex: 
    print_error(ex, sys.stderr) 

특히 아무 문제가 없다 하지만이 기능은 너무 기본적인 것이므로 도움을 줄 수는 없지만 더 간단한 방법은 없을지 모르겠습니다. 내가 놓친 게 있니? 아니면 좋은 해결책입니까?

+1

기능 주석을 사용하는 사용자를 보려면 편리합니다. 난 그냥 당신이 코드를 일부 데코레이터로 정적 검사하지 않았 으면합니다. – JBernardo

+0

@JBernardo 주석을 매우 좋아합니다. 나는 그들이 정확히 Python이 필요로하는 것, 즉 오리 유형의 사임없이 예상되는 유형으로 인해 코드를 명확히하는 것이라고 생각합니다. 아니요, 어떤 유형의 정적 검사도하지 않습니다! –

답변

2

더 좋은 방법이 있는지는 모르겠지만 6 줄의 코드이며 모든 것을 수행하는 데 오랜 시간이 걸린다는 것을 고려하면 나는 생각하지 않습니다. 더 나은 것을 필요로한다.