C#:在catch中调试时,您能得到一个非显式声明的异常吗?
这是一个编译器警告,通常不赞成在代码中使用未使用的变量。因此,以下内容将生成警告,因为e未使用C#:在catch中调试时,您能得到一个非显式声明的异常吗?,c#,visual-studio,debugging,C#,Visual Studio,Debugging,这是一个编译器警告,通常不赞成在代码中使用未使用的变量。因此,以下内容将生成警告,因为e未使用 try { throw new InvalidOpreationException(); } catch(Exception e) { } 正确的方法是不给异常命名,除非您打算使用它: try { throw new InvalidOpreationException(); } catch(Exception) { } 但这种“正确”的方式在调试时可能会很麻烦。你可以在catch中设置一个
try {
throw new InvalidOpreationException();
}
catch(Exception e) {
}
正确的方法是不给异常命名,除非您打算使用它:
try {
throw new InvalidOpreationException();
}
catch(Exception) {
}
但这种“正确”的方式在调试时可能会很麻烦。你可以在catch中设置一个断点,但除非你停止应用程序,命名异常,重新编译并重新创建错误,否则你不会知道为什么会出现断点。至少可以说,这很烦人
更重要的是,该异常仍然存在,只是在此范围内没有显式名称。还有什么方法可以访问它吗?尝试将$exception添加到监视窗口中。这将绑定到当前线程上活动的异常。您可以分析此变量以找出运行时类型和所需的所有详细信息 我已经用VisualStudio2008和更高版本验证了这一点 编辑 这种类型的功能在VisualStudio调试器中称为伪变量。您可以在以下位置获得完整的列表(按语言分类)