为所有项目在Visual Studio 2010中默认开启异常处理

7

似乎Visual Studio 2010针对新项目默认不会在抛出异常时中断 - 您需要进入设置并打开该行为。此设置似乎是每个项目的设置,而不是系统范围的设置。

有没有办法强制所有新项目的默认行为是在抛出异常时中断?

我正在运行64位机器上的Windows 7专业版上的Visual Studio 2010 Ultimate。


2
你的意思是它没有设置在所有异常情况下中断吗?异常是由你的应用程序抛出的,而不是VS。 - Oded
1
是的,被应用程序抛出的。 - Oded
1
只有一种编程风格需要这样做:http://twitter.com/codinghorror/status/13181756185 - Hans Passant
1
对不起,但那显然是胡说八道。 - Thomi
如果你坚定地想要它,录制宏可能会让它更容易。 - Jahan Zinedine
显示剩余2条评论
2个回答

4
假设您指的是 Debug\Exceptions... 菜单对话框来捕获所有的第一次机会异常,这是全局/系统范围内的设置。
(请注意,像许多全局设置一样,我认为它的值在 VS 关闭时保存,因此请注意如果您有多个实例的 VS 打开,并且该设置具有不同的值。)

1
在我的机器上,这是一个项目范围的设置。如果我创建一个新项目,默认情况下不会抛出这些异常。如果我打开它们并保存项目,关闭VS,再创建一个新项目,我会发现它们又都关闭了。如果我重新打开第一个项目,你猜怎么着?它们又回来了。 - Thomi
1
也许是解决方案范围的问题?我很确定它不是项目范围的,但也许它是解决方案范围的。 - Brian
1
可能吧。无论哪种情况,肯定有一种方法可以更改默认设置!在我看来,默认情况下关闭异常是一件非常愚蠢的事情。 - Thomi
1
关闭异常?它会在未处理的异常上中断 - 但并非所有抛出的异常,无论是已处理还是未处理的。异常并没有“关闭”,它们会像您预期的那样向上冒泡,并且只有在它们未被处理时才会触发中断。 - Rushyo

3

此处首次从注册表中加载(之后在解决方案中持久化):

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio[VS版本]\Configuration\AD7Metrics\Exception{449EC4CC-30D2-4032-9256-EE18EB41B62B}\Common Language Runtime Exceptions\[命名空间]\[异常类型名称]

[VS版本]可以是9.0或10.0或任何其他子项(如如果您在VS 2008 SDK实验性子项中运行,则为9.0Exp)

[命名空间]例如可以是System,[异常类型名称]可以是System.AppDomainUnloadedException。

接下来,您必须设置State键值(使其与其他现有的异常配置保持一致)。


我也发现了这个问题,但是发现这些值在每次使用后都会重置。如果您设置了这些值,然后创建一个新项目,然后关闭所有VS实例,这些值会重置吗? - Thomi
我尝试使用“Managed Debugging Assistant for LoaderLock”进行测试,对话框中的复选框未被选中,但调试助手仍然弹出... - rotti2
我显然没有帮助任何人的意图,因为没有人认为这是有趣的,因为它没有得到任何投票 :-) - Simon Mourier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接