Windows 服务中未经处理的异常

本文关键字:处理 异常 服务 Windows | 更新日期: 2023-09-27 18:34:20

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

Windows 服务中未经处理的异常

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

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

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

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