配置Visual Studio调试器不会中断异常?

时间:2011-12-09 04:47:17

标签: visual-studio debugging try-catch

当发生异常时,Visual Studio的调试器可以立即中断应用程序的执行。 例如(一个微不足道的):

try{
    a= b/0; // Faulty code
}
catch(.){
    printf("I know the code above is faulty.");
}

执行程序时,Visual Studio始终会破坏错误的代码。如果C ++ try{} catch {} block出现异常,如何将其配置为不中断?

1 个答案:

答案 0 :(得分:0)

编辑:以下内容适用于C#/ CLR。我不知道是否有[非托管] C ++代码的等价物。


你不能 - 选项是“突然抛出”或“未处理中断”。

但是,可以完成的是整个方法可以使用DebuggerNonUserCode属性进行注释。使用此批注,调试器不会因为在方法中生成和处理的异常而中断。 (对于方法传播 out 的异常,它仍会中断。)

  

公共语言运行库不向此属性添加语义。它供源代码调试器使用。例如,Visual Studio 2005 [和2010]中的,调试器在调试器窗口中不显示具有此属性的元素,不会在具有此属性的方法中停止[包括从被调用方法抛出异常时] ,并且不允许在方法中设置断点。

谨慎使用:)

或者,如果适用,只需排除某些类别的异常就不会被调试器捕获,这可能是有益的,因为它是一种不那么具有侵入性的方法。

快乐的编码。