在VS调试器中,未捕获的异常导致程序在异常抛出(或接近足够)的点处中断,并且处于允许您查看所有堆栈帧并且到那时为止的局部变量的状态
有没有办法获得相同的结果(在抛出时中断)但是在特定点捕获异常?对于所有异常,甚至是给定类型的所有异常(可能真的很快无用)我都没有兴趣这样做但是如果我可以单次尝试或捕获块我会很高兴
有点相关:
答案 0 :(得分:5)
调试 - >例外对话框你想做什么?您可以选择导致VS中断的异常,无论它们是否被捕获。我不知道只为代码的某个部分执行此操作的方法,仅基于抛出的异常类型。
答案 1 :(得分:2)
是的,您应该能够在catch块的最后一个大括号上放置一个断点。如果你重新投掷,还是throw命令。
如果你只需要在某个方法内部的任何异常上有一个断点,那么重新抛出。
try { }
catch (Exception exc)
{
throw; // <-- breakpoint here
}
编辑:我曾经习惯在几乎所有的例外情况上都设置断点。一旦我达到大约25个断点,就会发现这会大大减慢调试器的速度。可能只与VS2005有关。
Edit2:导致异常的位置应该在exc对象的StackTrace中。