忽略异常的最佳C#语法

时间:2010-12-30 23:35:47

标签: c# exception ignore

在某些情况下,我们不关心Exception,只需要恢复。我知道这是副作用而且......

我的问题是关于忽略C#的最佳exception语法,例如:

try
{
   // exceptional code
}
catch { }

但这似乎有点难看,特别是catch之后的空括号。是否有更优雅的语法?

5 个答案:

答案 0 :(得分:4)

你永远不应该有这样的空catch语句。在代码中出现错误,甚至没有注意到它比在代码中出错更糟糕。

如果您真的想捕获异常并忽略它们,请尝试仅捕获您要忽略的异常类型,并添加关于忽略它的原因的注释:

try {
  // exceptional code...
} catch(FormatException) {
  // A comment describing why on earth you are cathing
  // an exception and ignoring it.
}

答案 1 :(得分:2)

嗯..我不认为这两个大括号有什么“不优雅”(事实上你吞咽异常而不是评论)。你必须担心更好的问题。

答案 2 :(得分:1)

可能不是最好的路线,但你可以这样做更具描述性:

try
{
    //  exceptional code
}
catch (Exception ex)
{
}

但是,我认为空括号向将来维护这一点的人传达相同的信息。

更好的是重构你的特殊代码。如果你忽略了一个例外,很可能(而且应该)做得更好。

答案 3 :(得分:0)

我认为惯例通常在忽略异常时,忽略特定类型的异常,至少为System.Exception提供一些处理。无论哪种方式,我都会在catch中记录为什么忽略相应的异常。

try {

   ... exceptional code

} catch (InvalidOperationException ex) {
   // This exception can be ignored because ..
} catch (Exception ex) {
   ... error handling code
}

答案 4 :(得分:0)

您可以使用Spring.NET AOP

Exception Handler Advice

摘自链接

在关键字' on'之后立即列出执行处理的源异常。并且可以逗号发表。接下来是要执行的操作,记录,翻译,换行,替换,返回或吞下。