我正在尝试记录/报告我的应用程序中的所有未处理异常(错误报告解决方案)。我遇到了一种总是未处理的情况。我想知道如何以未处理的方式捕获此错误。请注意,今天早上我已经进行了大量研究并尝试了很多方法... 是的,我看过这个,这个和许多其他东西。我只是在寻找通用解决方案以记录未处理的异常。
我在控制台测试应用程序的主要方法中有以下代码:
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块被执行/解决之前被调用)。