내가 probabily 매우 간단 뭔가를 부탁 해요,하지만 난 여기에 뭔가 놓친 거지 확신합니다 : DApplication_UnhandledException을 사용하여 일반적인 예외를 잡는 방법?
을 내가 가지고 내 App.xaml.cs를 파일에 다음과 같은 방법
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
MessageBox.Show("An error occurred!", ":(", MessageBoxButton.OK);
e.Handled = true;
App.Current.Terminate;
}
그리고 이벤트 핸들러는 앱에 추가됩니다() 메소드 :
을 : 이제public App()
{
UnhandledException += Application_UnhandledException;
//InitializeComponent() etc...
}
, 내가 좋아하는 내 MainPage.xaml.cs를 파일에 내 방법 중 하나에 IndexOutOfRange 예외를 생성하는 라인의 몇 뭔가를 추가
int[] stuff = new int[3];
for (int i = 0; i < 4; i++)
{
stuff[i] = 0;
}
Application_UnhandledException 메서드가 어떻게 작동하는지 이해할 수 없습니다. 실행하려고하면 Visual Studio 디버거에서 IndexOutOfRange 예외가 발생하지만 응용 프로그램이 충돌하고 해당 메시지 상자가 표시되지 않습니다. , Application_UnhandledException 내의 코드는 전혀 실행되지 않습니다. 왜 그럴까요?
어떤 예외가 발생하더라도 트리거하는 이벤트 처리기를 추가하는 방법이 있습니까? KeyNotFound와 함께 IndexOutOfRande를 사용하면 ...
고마워! :) 소집 그것을 연결된 documentation에서
코드 주위에서 try/catch를 래핑하고 catch에서 다시 던지면 어떻게됩니까? 예외. –
아무 일도 일어나지 않습니다. 동일한 IndexOutOfRange Exception을 얻고 Application_UnhandledException이 트리거되지 않습니다. – Sergio0694
코드가 비동기 함수에 포함되어 있습니까? –