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

klr1opcd  于 2023-03-13  发布在  .NET
关注(0)|答案(7)|浏览(196)

我需要清除此警告:

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

编译器告诉我:
变量“MyException”已声明但从未使用
我该怎么补救。

pbwdgjma

pbwdgjma1#

1.您可以按如下方式删除它:

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

1.使用警告禁用如下:

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.
6bc51xsx

6bc51xsx2#

你为异常声明了一个名字,MyException,但是你从来没有对它做任何事情,因为它没有被使用,编译器会指出它。
您可以简单地删除名称。

catch(AmbiguousMatchException)
{
   doSomethingElse();
}
63lcw9qa

63lcw9qa3#

你可以简单地写:

catch (AmbiguousMatchException)

如果在catch子句中不使用异常名称,则省略异常名称。

stszievb

stszievb4#

如果你已经运行了一个日志,你可以把异常写出来,这对跟踪任何问题都很有用。

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

watbbzwu5#

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

xxhby3vn

xxhby3vn6#

but never used意味着您应该在catch()之后使用它,例如将其值写入控制台,然后此警告消息将消失。

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

gajydyqb7#

刚刚遇到了这个,异常是基于编译器变量使用的...
总之,我的解决办法是:

_ = MyException;

把它捡起来,承认它没有被真正使用。

相关问题