모든 처리되지 않은 예외를 포착하는 작은 라이브러리를 작성 중이며 사용자에게 예외를 개발자에게 보낼 기회를 제공하는 작은 대화 상자 (NF의 일반적인 대화 상자와 유사 함)를 보여줍니다. 이렇게하려면,이 같은 응용 프로그램 도메인의 UnhandledException 이벤트를 사용UnhandledException 이벤트가 작동하지 않습니까?
app.UnhandledException += (object sender, UnhandledExceptionEventArgs e) =>
{
ExceptionHandler handler = new ExceptionHandler((Exception)e.ExceptionObject, ExEntry);
UnhandledExceptionListened(handler);
if (Properties.Settings.Default.ShowStandardExceptionDialog)
{
ExceptionDialog exdialog = new ExceptionDialog(handler);
exdialog.ShowDialog();
}
};
ExceptionHandler 및 ExEntry 내 도서관의 클래스입니다. 하지만 : 예외가 발생하면 컴파일러가 Lambda-Expression으로 점프하고 첫 번째 코드 줄을 디버깅 한 다음 나머지 람다를 처리하지 않고 이전에 발생한 오류를 표시합니다. 하지만 난 그냥 쓰는 경우 :
app.UnhandledException += (object sender, UnhandledExceptionEventArgs e) =>
{
ExceptionDialog exdialog = new ExceptionDialog(handler);
exdialog.ShowDialog();
};
그것을 완벽하게 작동합니다. 왜 이것이 작동하지 않는지에 대한 아이디어가 있습니까?
try catch에서 최상위 코드를 감싸고 catch 지점에 감시 점을 넣습니다. 예외가 있습니까? 그렇다면 무엇입니까? – TheKingDave
테스트 단위에서 Exception Handler 생성을 테스트하는 것은 어떨까요? 무슨 일이야? –