문제

C# 프로그램은 다음에 의해 호출됩니다.

Application.Run (new formClass ());

포착되지 않은 예외를 포착하기 위해 전체에 try/catch를 적용하고 싶습니다.이 Run 메서드 주위에 배치하면 예외가 포착되지 않습니다.제어는 포착되지 않은 예외 후에 프로그램이 종료될 때만 여기로 반환됩니다.

전체 프로그램을 다루기 위해 try/catch를 어디에 넣을 수 있나요?감사해요!

도움이 되었습니까?

해결책

Windows Form의 처리되지 않은 예외를 잡으려면 연결됩니다AppDomain.UnhandledException 그리고 Application.ThreadException 이벤트.

관심있는 : 관리되는 응용 프로그램의 예기치 않은 오류

다른 팁

기본적으로 기본 CLR 호스팅 프로세스를 사용할 때는 모든 예외를 catch할 수 없습니다.기간.이는 AppDomain.UnhandledException 이벤트는 알림일 뿐이므로 예외를 처리할 수 없습니다. 즉, 알림을 처리한 후 애플리케이션이 종료되는 것을 방지할 수 없습니다.

그러나 다음을 사용하여 WinForms 애플리케이션의 UI 스레드에서 모든 예외를 포착하고 처리할 수 있습니다. Application.ThreadException 핸들러(및 행동을 통제하다 ~을 통해 UnhandledExceptionMode).예외를 발생시키는 다른 스레드는 이 처리기에 의해 포착되지 않습니다.

일반적으로 모든 예외를 처리하려고 시도하는 것은 좋은 생각이 아닙니다.그러나 다음을 사용할 수 있습니다.AppDomain.UnhandledException 오류를 기록하거나 중요한 정리 작업(예:파일 기반 데이터베이스 종료 등).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top