2016-07-01 7 views
1

제 코드에서 논리적 오류를 처리하려고합니다. 오류 코드가있는 프로그램을 종료하고 싶습니다. sys.exit(1)을 실행하면 원하지 않는 추적 오류가 발생합니다. 그러나 내가 os._exit(1)을하면 클리너 출구가 아닙니다.Python이 논리적 오류에서 종료되었습니다.

내 요구 사항 : os과 같이 종료하십시오. 오류 코드가 있지만 sys과 같이 깨끗하게 종료해야합니다.

답변

2

sys.exit(1)어쨌든을 사용하십시오. sys.excepthook()의 표준 파이썬 추적 백이 SystemExit을 깨끗이 처리하므로 추적 표시가 인쇄되지 않습니다. SystemExit exception documentation :

이 예외는 sys.exit() 함수에 의해 발생합니다. 처리되지 않으면 파이썬 인터프리터가 종료됩니다. 스택 추적이 인쇄되지 않습니다..

대담한 강조 광산.

프로그램에 최상위 예외 처리기가있는 경우 SystemExit을 잡지 마십시오. 일반적으로 담요 except:을 사용하지 않고 대신 except Exception:을 붙잡아서 처리합니다.