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

Jor*_*rdi 47 c# exception-handling visual-studio-2008

我有这个代码:

try {
    someMethod();
} catch (XYZException e) {
    // do something without using e
}
Run Code Online (Sandbox Code Playgroud)

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

Jan*_*Jan 95

定义不带异常变量的catch子句,如下所示:

try {
    someMethod();
} catch (XYZException) {
    // do something without using e
}
Run Code Online (Sandbox Code Playgroud)


Tim*_*oyd 31

定义不带异常变量的catch子句,如下所示:

try {
    someMethod();
} catch (XYZException) {
    // do not state e in catch clause
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,两个副本都是同时写的. (7认同)
  • 双重输入; 浪费时间读这个看看有什么不同.也许有人应该整理一下?(意识到这不是_much_时间,但当它们是相同的答案时似乎是浪费:-p) (6认同)
  • 我不仅浪费时间阅读重复的条目.我也浪费时间阅读上面的评论标记这一事实.读到一切的好奇家伙都有祸了. (6认同)
  • @ChristopherLightfoot这个答案实际上是在另一个之前41秒给出的. (4认同)

Ada*_*dam 5

另一种选择是使用

     try 
     {
          someMethod();
     } 
 #pragma warning disable 0168
     catch (XYZException e)
 #pragma warning restore 0168
     {
         // do not state e in catch clause
     }
Run Code Online (Sandbox Code Playgroud)

这在 Visual Studio 2015 中很有用,因为在使用 catch 上的断点进行调试时,默认情况下它无法查看异常。