异常处理 - 正确的方法是什么?

时间:2013-08-28 15:58:37

标签: c# exception-handling

我一直在使用异常处理并安装了 Resharper ,现在收到各种消息说我应该而且应该这样做。无论如何,它说我不应该在我的代码周围使用try和catch块。那么我将它们放在何处捕捉异常?我看到人们正在寻找某些例外情况,例如找不到文件,但是所有其他错误或异常都是独一无二的?

这是一个关于它的一些例外处理的例子:

try
{
    var rnd = new Random();
    var buffer = new byte[sizeof(UInt64)];
    rnd.NextBytes(buffer);
}
catch (Exception)
{
    throw;
}

是否有人可以获得有关异常处理的最佳做法的链接,以便让我们更加清醒?

2 个答案:

答案 0 :(得分:0)

只捕获您可以处理的异常,例如插入重复的主键,以便您可以向用户显示输入不同值的消息。

对于其他例外,让它们在您的库中冒泡并在一个地方处理它们。与ASP.Net中的Application_Error事件一样

答案 1 :(得分:0)

正如其他人已经指出的那样,如果你真的计划对catch块中的异常做一些事情,那么只使用try / catch - 这样做时请记住,实际上并不能保证catch块实际执行(例如电力故障)。

当我提出一个非常相似的问题时,请参阅给我的解释:when to use try/catch

如果您只想诊断/记录异常并且没有做任何具体的事情,您可以使用全局异常处理程序,即AppDomain.UnhandledException - 这样您就可以集中处理。