在某些情况下,我们不关心Exception
,只需要恢复。我知道这是副作用而且......
我的问题是关于忽略C#
的最佳exception
语法,例如:
try
{
// exceptional code
}
catch { }
但这似乎有点难看,特别是catch
之后的空括号。是否有更优雅的语法?
答案 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
摘自链接
在关键字' on'之后立即列出执行处理的源异常。并且可以逗号发表。接下来是要执行的操作,记录,翻译,换行,替换,返回或吞下。