【问题标题】:The variable 'MyException' is declared but never used变量“MyException”已声明但从未使用
【发布时间】:2011-09-21 06:59:56
【问题描述】:

我需要清除此警告:

try
{
    doSomething()
}
catch (AmbiguousMatchException MyException)
{
    doSomethingElse()
}

编译器告诉我:

变量“MyException”已声明但从未使用过

我该如何解决这个问题。

【问题讨论】:

    标签: c# .net exception frameworks ambiguity


    【解决方案1】:
    1. 你可以这样删除它:

      try
      {
          doSomething()
      }
      catch (AmbiguousMatchException)
      {
          doSomethingElse()
      }
      
    2. 像这样使用警告禁用:

      try
      {
          doSomething()
      }
      #pragma warning disable 0168
      catch (AmbiguousMatchException exception)
      #pragma warning restore 0168
      {
          doSomethingElse()
      }
      

    其他熟悉的警告禁用

    #pragma warning disable 0168 // variable declared but not used.
    #pragma warning disable 0219 // variable assigned but not used.
    #pragma warning disable 0414 // private field assigned but not used.
    

    【讨论】:

    • MSDN 上提供了所有编译器错误和警告的列表
    • @fparadis2 给出的解决方案更好,因为当我们可以修复它时不建议禁止警告
    • @dasariramacharanprasad 这是我的第一个建议,请重新阅读我的答案;)
    • 解决方案 #2 不是解决方案,它是一个掩码。
    • 但它很锋利不是吗:)
    【解决方案2】:

    您为异常声明了一个名称 MyException,但您从未对它做任何事情。由于没用到,编译器指出来。

    您可以简单地删除名称。

    catch(AmbiguousMatchException)
    {
       doSomethingElse();
    }
    

    【讨论】:

      【解决方案3】:

      你可以简单地写:

      catch (AmbiguousMatchException)
      

      如果您不会在 catch 子句中使用异常名称,请省略它。

      【讨论】:

      • +1 因为它解决了警告! MSDN 中没有解释。
      【解决方案4】:

      如果您有一个正在运行的异常,您可以将异常写入日志。可能有助于追踪任何问题。

      Log.Write("AmbiguousMatchException: {0}", MyException.Message);
      

      【讨论】:

        【解决方案5】:

        问题是,你没有在任何地方使用你的变量MyException。它被声明,但未被使用。这不是问题……只是编译器会给你一个提示,以防你打算使用它。

        【讨论】:

          【解决方案6】:

          but never used 表示你应该在 catch() 之后使用它,比如将它的值写入控制台,然后这个警告信息就会消失。

          catch (AmbiguousMatchException MyException)
          {
              Console.WriteLine(MyException); // use it here
          }
          

          【讨论】:

            猜你喜欢
            • 2016-08-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-03-11
            • 1970-01-01
            • 2010-12-15
            • 1970-01-01
            相关资源
            最近更新 更多