【发布时间】:2013-08-31 19:37:11
【问题描述】:
我使用异常处理已经有一段时间了,并且已经安装了 Resharper,现在收到各种消息说我应该并且应该这样做。无论如何,它说我不应该在我的代码周围使用 try 和 catch 块。那么我应该把它们放在哪里来捕获异常呢?我见过有人在寻找某些异常,例如 File not found,但其他所有唯一的错误或异常呢?
下面是一些它抱怨的异常处理示例:
try
{
var rnd = new Random();
var buffer = new byte[sizeof(UInt64)];
rnd.NextBytes(buffer);
}
catch (Exception)
{
throw;
}
有没有人有异常处理最佳实践的链接,可以让 re-sharper 满意?
【问题讨论】:
-
你把它们放进去捕捉你可以做些什么的异常。你没有对这里的任何异常做任何事情;你只是抓住它,什么都不做,然后再次扔掉它。例外情况是,如果您什么都不做,已经将成为调用者的问题;您不需要实际编写代码来执行运行时将自动执行的操作。
-
另外,在编写更多异常处理代码之前请阅读此内容:ericlippert.com/2008/09/10/vexing-exceptions
-
这个问题虽然不适合 SO,但有很多好的建议:stackoverflow.com/questions/2883936/…
-
@EricLippert 我想为此给你的 cmets +10,尤其是第一个。
标签: c# exception-handling