如何在MyBase.Load中触发带有异常的调试器

时间:2015-09-12 23:59:59

标签: vb.net

这并不是特别关注任何代码,而是开发过程。我时不时地把自己从MyBase.Load调来的东西抛出异常。

与从其他地方启动的程序流触发的异常不同,例如按钮,这些异常不会停止程序,也不会在适当的位置启动调试程序。

这就是为什么我通常使用.Load代码驻留在按钮中来开发.net应用程序,直到它准备就绪,我最终可以将它移动到它应该的位置。

出于显而易见的原因......这很烦人。有没有办法解决这个问题?勾选一些复选框..或者可能使用不同的事件来检测程序启动?

1 个答案:

答案 0 :(得分:0)

加载事件中引发的异常工作方式不同。它与Visual Studio无关,它是由Microsoft Windows设计的。

原因:调用加载方法处理程序的上下文简单地称为“在不同的世界中”。抛出的异常通过不同的路径上升,并且不会以典型的方式到达应用程序。 More information – recommended reading.

有一种解决方法:

永远不要使用加载事件

除了调整大小控制在其他地方无法有效完成的内容。

要么覆盖{{1}}方法,要么将大部分代码放入构造函数。如果某些代码需要完全初始化表单,请在已显示事件中处理。

旁注:我想知道为什么如果双击设计器中的表单,Visual Studio的设计器仍会提供OnLoad事件处理程序。根据上述事实,这会导致无经验的开发人员陷入令人讨厌的错误(尤其是异常)。