捕获异常未被使用的最佳实践

时间:2013-07-09 18:34:39

标签: c# exception exception-handling

我很想知道对于未使用的已捕获异常,最佳做法是什么。具有讽刺意味的是,这首先是违背最佳做法的。我发现自己有能力做到这一点,也许这只是我的经验不足,但我想知道通常做了什么。

我编写了一个小型控制台应用程序,它从一个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的最佳做法应该永远不会发生?

1 个答案:

答案 0 :(得分:3)

捕获异常只是为了重新抛出它是没有意义的,只会导致代码变大并变慢。

另一方面,如果你抓住并且不重新抛出,你应该总是将它记录在某个地方,因为你似乎在你的外部处理程序中正确地做了。