在Visual Studio中任何方式都不会在抛出特定异常时中断?

时间:2009-08-28 22:06:43

标签: visual-studio exception attributes debugging pragma

是否存在pragma或debugger属性,允许调试器在抛出特定异常时不会中断,即使在Debug>>下也是如此。例外菜单我告诉它在任何CLR异常被抛出时中断?

一般情况下,在开发过程中,我希望在调试时让异常中断,以便我可以立即检查它们。有时会出现一些孤立的情况,我们知道这个代码块偶尔抛出异常,我用try-catch处理它。请参阅the answer to this question,其中的共识是try-catch是最正确的情况。

我希望能够在方法上设置一个属性(类似于System.Diagnostics.DebuggerHiddenAttribute),它只是忽略方法中抛出的任何异常。

BTW,我目前在Visual Studio 2008中遇到过这种情况,但我猜测所有版本都有答案,或者没有答案。

1 个答案:

答案 0 :(得分:9)

可以在“调试”菜单的“例外”菜单项下找到直接答案。这是每个解决方案/项目设置。 (工具>选项>调试是系统范围的设置。)有关详细信息,请参阅帮助主题 Visual Studio调试器,如何:在http://msdn.microsoft.com/en-us/library/d14azbfh.aspx处抛出异常时中断。 “异常”对话框允许您设置抛出哪些异常或哪些异常进入调试器。

我发现我从DebuggerStepThrough属性中获得更多用途。

一般情况下,我将抛出异常保留为默认值(Debug> Exceptions user-unhandled checked and Thrown unchecked)并为我不感兴趣的方法添加DebuggerStepThrough属性,我也不感兴趣在该方法中抛出的任何异常。我很少使用DebuggerHidden,并且在库代码中更多地使用DebuggerNonUserCode