我已经设置了UnhandledException来记录我的服务崩溃之前的所有异常。

AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(unhandledException);


我正在通过引发和未处理的异常进行测试。

throw new Exception("TestExcepion");

private void unhandledException(object sender, UnhandledExceptionEventArgs e)
{
    // Logs to Log4Net but its not reaching here.
    Log.Info("Unhandled Exception: " + (e.ExceptionObject as Exception).ToString());
}


我正在尝试使用Log4Net在unhandledException方法中记录此消息,但是我什么也没收到。

为什么没有捕获到异常?

最佳答案

您的抛出代码可能在使用set AppDomain.CurrentDomain.UnhandledException之前,或者因为您将其放入了OnStart方法中

第二个选择是因为它是ThreadException

在以下线程中讨论了Bot以上问题:


How can I set up .NET UnhandledException handling in a Windows service?
Global exception handler for windows services?

09-26 22:26