如何捕获根方法中的所有内部异常
本文关键字:内部 异常 何捕获 方法 | 更新日期: 2023-09-27 18:33:09
我正在使用Windows服务,我想在我的根方法中捕获所有内部异常。在我的内部方法之一中,我正在使用如下所示的 try/catch 块。发生错误时,服务不会将错误消息返回到我的根方法。相反,它只是抛出一个错误并停止在我的内部方法中。
如何将错误消息返回到我的根方法?
try
{
loadAdapterProperties(ref strAssemblyName, ref strTypeName, ref statusXML,
strAssignedTask, ref lastAdapter, ref entityTypeCode, ref adminID);
if (strAssemblyName == "" || strTypeName == "")
{
LogWriter.WriteTimedMessage("No adapters currently available, {0}",
strAssignedTask);
loopCondition = false;
break;
}
objHandle = Activator.CreateInstance(strAssemblyName, strTypeName);
objAdapter = (BaseGatesAdapter)objHandle.Unwrap();
objAdapter.Load(strAssignedTask, statusXML, entityTypeCode, adminID);
objAdapter.Execute();
LogWriter.WriteTimedMessage("Executed {0}", strAssemblyName);
if (lastAdapter == true)
loopCondition = false;
}
catch (System.Exception e)
{
loopCondition = false;
LogWriter.WriteTimedMessage("FAILED to execute {0}",strAssemblyName);
throw;
}
您可能的意思是,运行应用程序时收到的错误消息指向内部方法。这意味着(很可能)您没有在根级别进行尝试/捕获。
这可能很棘手 - 如果您在计算机上安装了调试器,调试器将在您的主应用程序之前收到此"抛出"的通知。根据调试器配置,它可能会暂停应用。请参阅此处了解如何完全关闭它:抑制首次机会异常
以下是有关如何在线程级别注册异常事件的说明,因此您不必在所有方法上包装 try/catch如何在 .NET 应用中捕获所有异常/崩溃