如何禁用关于catch块中未使用异常变量的CS0168警告?

6

我总是在我的catch结构中添加一个变量:

catch (Exception e)
{
    // ...
}

即使在catch块中不使用e,我也会这样做,因为如果我在调试过程中进入一个“匿名”catch,我不知道如何获取异常及其详细信息。
catch { /* ...how to get the exception from here ?... */ }

如果在catch块中未使用异常,则会收到CS0168警告:“未使用变量e”。
我知道如何全局禁用CS0168(或本地禁用),但我不想这样做,因为它可能会隐藏有用的消息。
我不想在块中添加虚假代码来使用异常,以便它不会引发警告。
我不想编辑/删除参数以相应地在catch块中使用它,只是为了消除警告。
理想情况下,我想知道如何在调试时获取异常实例。

5
如果您没有使用变量 e,则可以将您的 catch 语句写成 catch (Exception) - user47589
1
我的问题是要突出显示变量以查看其值。在这里使用catch (Exception)无济于事(除非我漏掉了什么)。伪变量工作得很好。 - frenchone
2个回答

12
如果你在catch { ... }块中使用调试器获取异常实例,可以使用一个伪变量
只需要打开监视窗口并添加$exception即可。
你可以在任何类型的catch块中使用这个伪变量以获取异常实例。

6
你可以使用 #pragma 指令来禁用警告信息。同样,你也可以像下面的代码一样恢复它,这是明智之举。
#pragma warning disable CS0168 // The variable 'e' is declared but never used
catch (Exception e)
#pragma warning restore CS0168 // The variable 'e' is declared but never used
{
    // ...
}

1
谢谢,但在本地禁用警告对我来说有点太冗长了。 - frenchone

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接