2011-12-09 97 views
0

当发生异常时,Visual Studio的调试器可以立即中断应用程序的执行。 例如(是小事一桩):将Visual Studio调试器配置为不中断异常?

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

当你执行程序时,Visual Studio总是在错误的代码打破。如果C++ try{} catch {} block发生异常,我怎样才能配置它不会中断?

+0

你是什么意思“从try {} catch {} block'产生的异常”?在这种情况下,我无法弄清楚你想用“spawn”这个词来表示什么。 –

+0

(在问题中包含[更全面]样本通常是有益的。) – 2011-12-09 05:11:45

+0

在标签中包含语言:)是托管还是非托管C++? – 2011-12-09 05:35:07

回答

0

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


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

然而,什么可以做,是整个方法可以与DebuggerNonUserCode属性进行注释。通过这个注释,调试器不会中断在方法中生成并处理的异常。 (它仍然会打破传播的方法的例外。)

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

使用谨慎:)

或者,简单地排除一些类异常的被截留在调试器,它是否适用,因为它是一个不太侵入的方式可能是有益的。

快乐编码。

相关问题