我今天正在开发一款Windows应用,当我的错误不再像往常一样显示时。相反,调试器只是跳出了方法。输出窗口记录异常,但不显示常用的弹出跟踪。
它适用于其他项目,并且我已将Dim i as Integer = "A"
作为我的第一行来尝试引发错误,但它只是退出该行上的sub。
我是如何回来的?
答案 0 :(得分:11)
调试器和64位版本的Windows 7之间的交互中存在一个错误,该错误在Load事件中发生。 Windows会捕获并吞下异常,调试器永远不会有机会检测到它是未处理的。您将看到的唯一内容是“输出”窗口中的“第一次机会”通知。 Load事件处理程序将立即终止并且程序保持运行,就好像什么也没发生一样,假设它没有绕过关键的初始化代码。这个bug已经存在了很长时间,并且为微软所熟知,显然很难解决。
您可以使用Project + Properties,Compile选项卡,向下滚动,Advanced Compile Options按钮解决此错误。将目标CPU设置更改为“AnyCPU”。捕获它的另一种方法是使用Debug + Exceptions,勾选CLR Exceptions上的Thrown复选框。另一种解决方法是将初始化代码放在构造函数中而不是OnLoad()或Load事件中。当您需要知道窗口的实际大小时,您才真正需要加载。
此错误只会在您调试时触发。它不会发生在用户的计算机上。
更新:我在this post中对此次事故进行了大量扩展。
答案 1 :(得分:7)
在Debug-> Exceptions下检查是否检查了公共语言运行时异常。
答案 2 :(得分:3)
您的.suo文件是否已被删除(这是存储您的个人解决方案状态,您的设置,展开/折叠的文件的文件)。如果您突然发现必须点击“全部崩溃”,因为它已经忘记了,它会在您打开解决方案时重新创建,但是会使用默认设置进行重建。
如果是这样,请按CTRL + ALT + E并在CLR例外的异常复选框上重新勾选。