当我的应用程序抛出异常时,我希望调试器停止运行并进入调试模式,但事实并非如此。相反,我只是在立即窗口中收到一条消息('第一次机会异常......'),程序继续运行,好像什么也没发生。但是,退出sub(抛出异常),因此不执行异常后的语句。由于这个sub使我的程序初始化,运行变得非常不稳定。
如何在抛出异常时告诉调试器停止执行?
(我使用VB 2010,并没有更改调试器的任何设置。)
的更新:
感谢您及时回复。不幸的是,我仍然无法按照我喜欢的方式得到它。
到目前为止,我在32位上使用了VB 2008,一切正常,但是自从我搬到2010年64位后,我就无法做到正确。有什么建议吗?
答案 0 :(得分:1)
Debug + Exceptions,勾选“Common Language Runtime Exceptions”的Thrown复选框。调试器现在将在第一次机会通知时停止。
通常的原因是代码中的catch语句,可能是VB.NET On Error语句。或者64位调试器与Windows窗体交互中的错误。在它中断之后,使用Debug + Windows + Call stack并检查表单的Load事件处理程序是否在调用堆栈上。该错误导致未经诊断的情况下吞下未处理的异常。
要解决此问题,请使用“项目+属性”,“编译”选项卡,向下滚动,“高级编译选项”。将目标CPU设置更改为“x86”。这是VS2010项目btw的默认设置。您现在将使用32位调试器,它没有此问题。您可以使用编辑+继续。
答案 1 :(得分:1)
我知道这是一个旧帖子,但我希望它可以帮助别人..
我在表单启动时遇到了一个非常类似的问题。 我把我的代码放在"显示事件",而不是"加载事件"它解决了! 我的意思是我得到了预期的异常,我的代码不会默默地退出。
我知道它们是不同的事件,但对我来说它并没有做出任何改变。
BTW,我的环境:Win7 64位上的VB.net Express 2010
答案 2 :(得分:0)
要获取目标CPU选项,您必须在VS2010 express中选择专家设置。转到工具|选项并检查专家设置。