Я пишу небольшую библиотеку, которая ловит все необработанные исключения, показывает небольшой диалог (похожий на обычный диалог NF), который дает пользователю возможность отправить исключение разработчику. Для этого я использую UnhandledException-событие в AppDomain, как это: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 классы моей библиотеки. Но: Если возникает исключение, компилятор переходит в мое Лямбда-выражение, пытается отладить первую строку кода, а затем показывает ошибку, которая произошла до этого, без отработки остальной лямбда. Но если я просто пишу:
app.UnhandledException += (object sender, UnhandledExceptionEventArgs e) =>
{
ExceptionDialog exdialog = new ExceptionDialog(handler);
exdialog.ShowDialog();
};
она прекрасно работает. У кого-нибудь есть идея, почему это не работает?
Оберните свой верхний код в попытке поймать и поместите точку наблюдения в ловушку. Есть ли исключение, и если да, то что это? – TheKingDave
Как насчет простого тестирования создания вашего обработчика исключений в тестовом блоке? что происходит, чем? –