我很想知道对于未使用的已捕获异常,最佳做法是什么。具有讽刺意味的是,这首先是违背最佳做法的。我发现自己有能力做到这一点,也许这只是我的经验不足,但我想知道通常做了什么。
我编写了一个小型控制台应用程序,它从一个Sharepoint站点获取列表信息,以便在另一个服务器场上共享它。有问题的函数将列表查询到XElement中,并且我正在捕获任何错误。这是片段。
...
try
{
return lists.GetListItems("Global Announcement", null, null, viewFields.GetXmlNode(), null, null, null)
.GetXElement().Elements().First().Elements().First();
}
catch (Exception ex)
{
throw;
}
}
catch (Exception ex)
{
ErrorLogging.SaveErrorToEventLog("Encountered an error when attempting to connect: ", ex);
}
我被一位大四学生建议只使用throw作为内部异常来保持堆栈信息的正确顺序。在这种情况下,我很想知道Exception ex
的最佳做法是什么,或者如果首先打破try catch
的最佳做法应该永远不会发生?
答案 0 :(得分:3)
捕获异常只是为了重新抛出它是没有意义的,只会导致代码变大并变慢。
另一方面,如果你抓住并且不重新抛出,你应该总是将它记录在某个地方,因为你似乎在你的外部处理程序中正确地做了。