English 中文(简体)
捕捉到异常时中断并抛出
原标题:
  • 时间:2009-01-06 23:28:17
  •  标签:

在VS调试器中,未捕获的异常会导致程序在抛出异常的位置(或足够接近的位置)中断,并处于一种状态,让您查看到该点为止的所有堆栈帧及其局部变量。

是否有一种方法可以在某个特定点捕获异常时获得相同的结果(在throw处中断)?我不感兴趣为所有异常或甚至给定类型的所有异常做这个,因为这可能会很快失去意义,但如果我可以为一个try或catch块做到这一点,我会很高兴。

有些相关:

问题回答

调试->异常对话框是您想要的吗?您可以选择哪些异常会导致VS中断,无论它们是否被捕获。我不知道是否只针对代码的某个特定部分执行此操作,仅基于所抛出的异常类型。

是的,你应该能够在你的catch块的最后一个大括号上设置断点。或者如果你要重新抛出异常的话,也可以在throw命令上设置断点。

如果您只需要在某个方法内的任何异常处设置断点,请重新抛出异常。

try {  }
catch (Exception exc)
{ 
   throw;  // <-- breakpoint here
} 

编辑:我曾经习惯在几乎所有的异常上设置断点。后来发现,当我设置了大约25个断点时,这会严重减缓调试器的速度。这可能仅适用于VS2005。

编辑2:引发异常的位置应该在exc对象的StackTrace中。





相关问题
热门标签