간단히 말해서, 필자는 Linux에서 "losetup", "mount"등의 아웃 콜을하는 실질적인 Python 응용 프로그램을 가지고 있습니다. 완료 될 때 해제해야하는 시스템 리소스를 소모합니다.응용 프로그램 전반의 예외 처리기가 의미가 있습니까?
내 응용 프로그램이 충돌하는 경우 이러한 시스템 리소스가 제대로 릴리스되도록하고 싶습니다.
다음과 같은 것을하는 것이 합리적입니까?
def main():
# TODO: main application entry point
pass
def cleanup():
# TODO: release system resources here
pass
if __name__ == "__main__":
try:
main()
except:
cleanup()
raise
이것은 일반적으로 수행되는 것입니까? 더 좋은 방법이 있습니까? 아마도 싱글 톤 클래스의 소멸자입니까?
최상위 예외 처리기는 GUI 응용 프로그램에서 유용합니다. 이벤트 핸들러에서 발생하는 잡히지 않은 예외는 콘솔에 표시되지만 일반적으로 프로그램을 중단시키지 않습니다 (예 : PyGTK 및 PyQt). 이는 눈에 띄지 않을 수 있습니다. 핸들러에 오류 대화 상자가 표시되면 그 문제점이 없습니다. –
또한 일괄 처리를 수행하는 콘솔 앱에 넣는 것이 좋습니다. 나는 그들이 문제를 통보받을 수 있도록 이메일을 보내달라고하지만 최소한 그것은 기록 할 수있다. –