我有这段代码:
try {
someMethod();
} catch (XYZException e) {
// do something without using e
}
执行此操作会给我一个关于声明但是从不使用e
的警告,这是我讨厌的。但是,我也不想在没有该变量的情况下使用catch
子句,因为它会捕获所有异常,而不仅仅是XYZException
。这似乎是一种经常发生的模式。我知道我可以使用#pragma warning disable 0168
来抑制警告,但我真的没有找到一个非常优雅的解决方案。还有更好的方法吗?
答案 0 :(得分:90)
定义不带异常变量的catch子句,如下所示:
try {
someMethod();
} catch (XYZException) {
// do something without using e
}
答案 1 :(得分:30)
定义不带异常变量的catch子句,如下所示:
try {
someMethod();
} catch (XYZException) {
// do not state e in catch clause
}
答案 2 :(得分:3)
另一种选择是使用
try
{
someMethod();
}
#pragma warning disable 0168
catch (XYZException e)
#pragma warning restore 0168
{
// do not state e in catch clause
}
这在visual studio 2015中很有用,因为在使用catch上的断点进行调试时,默认情况下没有办法查看异常。
答案 3 :(得分:0)
使用System.Diagnostics.CodeAnalysis.SuppressMessage
属性。