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

tod*_*dmo 7 c# debugging exception immediate-window visual-studio-2010

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

当我单击View Detail ...时,异常本身在其自定义对象模型中有一些值,它们不会在属性网格中进行评估,但我知道我可以在即时窗口中对其进行评估.(在这种情况下,属性网格不会让我深入到集合中,但可能还有其他情况)

在不改变代码以添加try块的情况下,如何进入即时窗口并评估未处理异常的表达式?

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

涉及System.Diagnostics.StackFrame或谁知道的事情.聪明的东西.

有一种方法可以使用调试器线程导航到它,但这非常复杂.如果您可以使用可能是解决方案的包装器来实现它并使其变得简单.

Cha*_*art 11

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

要执行此操作,请转到VS2010主菜单并选择"调试"菜单接下来选择"例外..."

这会产生如下对话框: 调试 - >例外..菜单

选择Thrown列

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

在Locals选项卡中,我可以看到$ exception变量: 局部变量包含$ exception

我可以在即时窗口中使用"$ exception"变量: 立即窗口访问$ exception

更新: 为了轻松切换异常处理,我建议使用异常破坏程序Visual Studio扩展,它允许您在工具栏上打开和关闭异常处理,而不必钻入"调试"菜单.

  • 我可以通过 VS2010 中的“$exception”访问它。我已经用图片更新了帖子。 (2认同)