Я пытаюсь регистрировать/сообщать обо всех необработанных исключениях в моем приложении (решение для отчетов об ошибках). Я столкнулся с сценарием, который всегда необработан. Мне интересно, как я поймаю эту ошибку необработанным образом. Обратите внимание, что сегодня утром я провел много исследований и много чего пытался. Да, я видел этот, и многое другое. Я просто ищу универсальное решение для регистрации необработанных исключений.
У меня есть следующий код внутри основного метода консольных тестовых приложений:
Task.Factory.StartNew(TryExecute);
или
Task.Run((Action)TryExecute);
а также следующий метод:
private static void TryExecute() {
throw new Exception("I'm never caught");
}
Я уже пробовал подключиться к следующему в своем приложении, но они никогда не вызываются.
AppDomain.CurrentDomain.UnhandledException
TaskScheduler.UnobservedTaskException
В моем приложении Wpf, где я изначально обнаружил эту ошибку, я также подключился к этим событиям, но он никогда не вызывался.
Dispatcher.UnhandledException
Application.Current.DispatcherUnhandledException
System.Windows.Forms.Application.ThreadException
Единственный обработчик, который вызывается когда-либо:
AppDomain.CurrentDomain.FirstChanceException
но это не является допустимым решением, так как я хочу только сообщать о неперехваченных исключениях (не каждое исключение, как FirstChanceException, вызывается до того, как все блоки catch будут выполняться/разрешаться.