c# - 如何评估即时窗口中未处理的异常属性

标签 c# visual-studio-2010 debugging exception immediate-window

我有一个未处理的异常导致异常助手对话框出现。

当我单击“查看详细信息...”时,异常本身在其自定义对象模型中有一些值不会在属性网格中计算,但我知道我可以在即时窗口中计算它。 (在这种情况下,属性网格不会让我深入到集合中,但可能还有其他情况)

在不更改代码以添加 try block 的情况下,我如何才能转到即时窗口并计算未处理异常的表达式?

答案可能是一些我还不知道的魔法,比如 ?this.CurrentException 或

涉及 System.Diagnostics.StackFrame 或谁知道的东西。有点聪明。

有一种方法可以使用调试器线程导航到它,但这相当复杂。如果您可以接受它并使用可能是解决方案的包装器使其变得简单。

最佳答案

您是否尝试将调试器设置为在抛出异常时中断,而不是仅在用户未处理异常时中断?

要执行此操作,请转到 VS2010 主菜单并选择“调试”菜单 接下来选择“异常(exception)...”

这将弹出如下对话框: Debug -> Exceptions.. menu

选择抛出列

现在当您的异常被抛出时,您应该能够在立即窗口中评估您的局部变量。

在 Locals 选项卡中,我可以看到 $exception 变量: Local variables contains $exception

我可以在即时窗口中使用“$exception”变量: Immediate Window accessing $exception

更新: 此外,为了轻松切换异常处理,我建议使用 Exception Breaker Visual Studio Extension ,它允许您从工具栏打开和关闭异常处理中断,而不必深入调试菜单。

关于c# - 如何评估即时窗口中未处理的异常属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19824047/

相关文章:

visual-studio-2010 - 在图像查看器而不是 Web 浏览器中打开 TFS 工作项附件

c++ - 从 VS2005 或 VS2010 中的现有代码创建 C++ 项目

php - 尝试使用 xdebug 在 cli 上调试 phpunit 单元测试失败

debugging - 如何获取R脚本出错时的行号?

javascript - 在与 Webpack 捆绑在一起的 VS Code 中调试 Node JS 代码

c# - 如何验证存储在 C# 类中的数据

c# - EPPlus 改变单元格的边框颜色

c# - Visual Studio 2010 $(PlatformName) 宏与 MSBuild.exe 不兼容

c# - 将 JSON 字符串作为命令行参数传递

c# - DateTimeOffset 到 DateTime 的转换 - 数据丢失