我一直在使用异常处理并安装了 Resharper ,现在收到各种消息说我应该而且应该这样做。无论如何,它说我不应该在我的代码周围使用try和catch块。那么我将它们放在何处捕捉异常?我看到人们正在寻找某些例外情况,例如找不到文件,但是所有其他错误或异常都是独一无二的?
这是一个关于它的一些例外处理的例子:
try
{
var rnd = new Random();
var buffer = new byte[sizeof(UInt64)];
rnd.NextBytes(buffer);
}
catch (Exception)
{
throw;
}
是否有人可以获得有关异常处理的最佳做法的链接,以便让我们更加清醒?
答案 0 :(得分:0)
只捕获您可以处理的异常,例如插入重复的主键,以便您可以向用户显示输入不同值的消息。
对于其他例外,让它们在您的库中冒泡并在一个地方处理它们。与ASP.Net中的Application_Error事件一样
答案 1 :(得分:0)
正如其他人已经指出的那样,如果你真的计划对catch块中的异常做一些事情,那么只使用try / catch - 这样做时请记住,实际上并不能保证catch块实际执行(例如电力故障)。
当我提出一个非常相似的问题时,请参阅给我的解释:when to use try/catch
如果您只想诊断/记录异常并且没有做任何具体的事情,您可以使用全局异常处理程序,即AppDomain.UnhandledException - 这样您就可以集中处理。