我有一个未处理的异常导致异常助手对话框出现。
当我单击“查看详细信息...”时,异常本身在其自定义对象模型中有一些值不会在属性网格中计算,但我知道我可以在即时窗口中计算它。 (在这种情况下,属性网格不会让我深入到集合中,但可能还有其他情况)
在不更改代码以添加 try block 的情况下,我如何才能转到即时窗口并计算未处理异常的表达式?
答案可能是一些我还不知道的魔法,比如 ?this.CurrentException 或
涉及 System.Diagnostics.StackFrame
或谁知道的东西。有点聪明。
有一种方法可以使用调试器线程导航到它,但这相当复杂。如果您可以接受它并使用可能是解决方案的包装器使其变得简单。
最佳答案
您是否尝试将调试器设置为在抛出异常时中断,而不是仅在用户未处理异常时中断?
要执行此操作,请转到 VS2010 主菜单并选择“调试”菜单 接下来选择“异常(exception)...”
这将弹出如下对话框:
选择抛出列
现在当您的异常被抛出时,您应该能够在立即窗口中评估您的局部变量。
在 Locals 选项卡中,我可以看到 $exception 变量:
我可以在即时窗口中使用“$exception”变量:
更新: 此外,为了轻松切换异常处理,我建议使用 Exception Breaker Visual Studio Extension ,它允许您从工具栏打开和关闭异常处理中断,而不必深入调试菜单。
关于c# - 如何评估即时窗口中未处理的异常属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19824047/