web-dev-qa-db-ja.com

変数 'MyException'は宣言されていますが、使用されていません

この警告をクリアする必要があります:

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

コンパイラは私に言っています:

どうすれば修正できますか。

.

65
Wassim AZIRAR
  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.
128
Jalal Said

例外の名前MyExceptionを宣言しますが、それで何もしません。使用されていないため、コンパイラはそれを指摘します。

名前を削除するだけです。

catch(AmbiguousMatchException)
{
   doSomethingElse();
}
38
Khepri

あなたは単に書くことができます:

catch (AmbiguousMatchException)

catch句で例外名を使用しない場合は、例外名を省略します。

25
fparadis2

実行中のログがある場合は、ログに例外を書き出すことができます。問題を追跡するのに役立つかもしれません。

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

問題は、どこでも変数MyExceptionを使用していないことです。宣言されますが、使用されません。これは問題ではありません...あなたがそれを使用するつもりである場合に備えて、コンパイラが単にあなたにヒントを与えます。

2
Brad

but never usedは、値をコンソールに書き込むなど、catch()の後に使用する必要があることを意味し、この警告メッセージは消えます。

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