この警告をクリアする必要があります:
try
{
doSomething()
}
catch (AmbiguousMatchException MyException)
{
doSomethingElse()
}
コンパイラは私に言っています:
どうすれば修正できますか。
.
次のように削除できます。
try
{
doSomething()
}
catch (AmbiguousMatchException)
{
doSomethingElse()
}
次のような警告無効化を使用します。
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.
例外の名前MyExceptionを宣言しますが、それで何もしません。使用されていないため、コンパイラはそれを指摘します。
名前を削除するだけです。
catch(AmbiguousMatchException)
{
doSomethingElse();
}
あなたは単に書くことができます:
catch (AmbiguousMatchException)
catch句で例外名を使用しない場合は、例外名を省略します。
実行中のログがある場合は、ログに例外を書き出すことができます。問題を追跡するのに役立つかもしれません。
Log.Write("AmbiguousMatchException: {0}", MyException.Message);
問題は、どこでも変数MyException
を使用していないことです。宣言されますが、使用されません。これは問題ではありません...あなたがそれを使用するつもりである場合に備えて、コンパイラが単にあなたにヒントを与えます。
but never used
は、値をコンソールに書き込むなど、catch()の後に使用する必要があることを意味し、この警告メッセージは消えます。
catch (AmbiguousMatchException MyException)
{
Console.WriteLine(MyException); // use it here
}