在C#中禁止对未使用的异常变量发出警告

时间:2010-12-21 14:17:14

标签: c# visual-studio-2008 exception-handling

我有这段代码:

try {
    someMethod();
} catch (XYZException e) {
    // do something without using e
}

执行此操作会给我一个关于声明但是从不使用e的警告,这是我讨厌的。但是,我也不想在没有该变量的情况下使用catch子句,因为它会捕获所有异常,而不仅仅是XYZException。这似乎是一种经常发生的模式。我知道我可以使用#pragma warning disable 0168来抑制警告,但我真的没有找到一个非常优雅的解决方案。还有更好的方法吗?

4 个答案:

答案 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属性。

visit Microsoft