我有一个应用程序运行一个很长的批处理过程,可能会抛出许多异常。如果在批次中的一个项目中引发了非关键异常,我只想简单地记录它并继续,以便稍后解决问题,同时让其他批次项目继续。我应该捕捉哪些异常?
一些例外情况(如OutOfMemoryException
)对应用程序整体而言具有破坏性,而且我希望重新抛出它们,以便它们冒泡到全局异常处理程序,它将记录错误并停止应用程序。
所以我的问题是,有没有我可以在我的下异常处理程序重新抛出,同时抑制其他一切(登录后)临界异常的reasonbly短名单?
谢谢!
编辑:要详细一点,这里是我的程序的基本结构
foreach(var item in longItemList)
{
try
{
bigDynamicDispatchMethod(item);
}
catch(Exception ex)
{
logException(ex);
}
}
有可能被抛出的异常的一个潜在的巨大的数字,因为这个循环是相当多的顶层我的应用程序。我项目中的代码99%落后于调度方法。我在较低层次上进行了合理的异常处理,但是错误仍然在进行中,并且在抛出异常后我不想停止批处理中的其他无关进程。
试图找出哪些异常可以在我的应用程序在其他地方扔似乎是一个艰巨的任务,它似乎是,它会更简单,以获取重要的例外的黑名单。
是否有更好的方法来组织我的应用程序来处理呢?我乐于接受建议。
的[哪种类型的异常的不抓?(可能重复http://stackoverflow.com/questions/5507836/which-types-异常不可捕捉) –