4

我创建了一个运行多个任务的 .net c# windows 服务。我在其中包含了异常处理,但我想设置一个全局处理程序来捕获 Windows 服务中未处理的异常,我该怎么做?

4

1 回答 1

6

我在其中包含了异常处理,但我想设置一个全局处理程序来捕获 Windows 服务中未处理的异常

可以使用AppDomain.UnhandledException. 但是,在您的情况下,您对服务的整个调用都可以包装在 try/catch 块中。由于您没有提供有关您计划如何处理此未处理异常的详细信息,因此我认为在这种情况下您的正确路径是让服务崩溃

try
{
   MainCallToYourService();
}
catch (Exception)
{
   //it's probably too late to do anything useful here, try to log and die
}

请记住,这样做的问题在于,在很多情况下,您的应用程序的状态在引发此事件时已损坏。您最好的选择是尝试记录并退出。

于 2012-05-15T22:24:35.133 回答