在捕获异常时抛出异常

时间:2009-01-06 23:28:18

标签: c# visual-studio exception-handling debugging

在VS调试器中,未捕获的异常导致程序在异常抛出(或接近足够)的点处中断,并且处于允许您查看所有堆栈帧并且到那时为止的局部变量的状态

有没有办法获得相同的结果(在抛出时中断)但是在特定点捕获异常?对于所有异常,甚至是给定类型的所有异常(可能真的很快无用)我都没有兴趣这样做但是如果我可以单次尝试或捕获块我会很高兴

有点相关:

2 个答案:

答案 0 :(得分:5)

调试 - >例外对话框你想做什么?您可以选择导致VS中断的异常,无论它们是否被捕获。我不知道只为代码的某个部分执行此操作的方法,仅基于抛出的异常类型。

答案 1 :(得分:2)

是的,您应该能够在catch块的最后一个大括号上放置一个断点。如果你重新投掷,还是throw命令。

如果你只需要在某个方法内部的任何异常上有一个断点,那么重新抛出。

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

编辑:我曾经习惯在几乎所有的例外情况上都设置断点。一旦我达到大约25个断点,就会发现这会大大减慢调试器的速度。可能只与VS2005有关。

Edit2:导致异常的位置应该在exc对象的StackTrace中。