【发布时间】:2011-09-21 06:59:56
【问题描述】:
我需要清除此警告:
try
{
doSomething()
}
catch (AmbiguousMatchException MyException)
{
doSomethingElse()
}
编译器告诉我:
变量“MyException”已声明但从未使用过
我该如何解决这个问题。
【问题讨论】:
标签: c# .net exception frameworks ambiguity
我需要清除此警告:
try
{
doSomething()
}
catch (AmbiguousMatchException MyException)
{
doSomethingElse()
}
编译器告诉我:
变量“MyException”已声明但从未使用过
我该如何解决这个问题。
【问题讨论】:
标签: c# .net exception frameworks ambiguity
你可以这样删除它:
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
}
【讨论】: