.net 表单加载事件中未处理异常

.net 表单加载事件中未处理异常,.net,exception,event-handling,.net,Exception,Event Handling,我在.Net中遇到了异常处理的奇怪行为。(我在MS Visual Studio 2008中使用C#,但我在这里看到的一个问题似乎暗示我在整个.Net世界中看到的都是真实的。)我正在编写一个简单的WinForm应用程序。我故意在form_load事件处理程序内部、任何try块外部引发未处理的异常。我没有接到通知。如果在正常方法中发生未处理的异常,则会弹出一条消息,告诉我该异常已发生,并提供有关该问题的一些信息。但是在处理程序中,代码只是悄悄地退出函数,而不让任何人知道它发生了。如果我添加一个try

我在.Net中遇到了异常处理的奇怪行为。(我在MS Visual Studio 2008中使用C#,但我在这里看到的一个问题似乎暗示我在整个.Net世界中看到的都是真实的。)我正在编写一个简单的WinForm应用程序。我故意在form_load事件处理程序内部、任何try块外部引发未处理的异常。我没有接到通知。如果在正常方法中发生未处理的异常,则会弹出一条消息,告诉我该异常已发生,并提供有关该问题的一些信息。但是在处理程序中,代码只是悄悄地退出函数,而不让任何人知道它发生了。如果我添加一个try/catch块,异常将按预期捕获


是否所有事件处理程序都会发生这种行为?这是预期的行为吗?如果是这样的话,是不是因为如果事件处理程序意外停止,那么会有太多的坏事情发生的危险?

无论是在VS内部还是外部,当有一个调试器连接到该进程时,都会发生这种行为。但是,作为调试版本没有什么区别。如果在VS外部运行而未连接调试器,则会触发未处理的异常。 你可以查一下

,及 ,以寻求可能的解决方案


编辑:据我所知,此行为仅针对form_load事件处理程序。

您是否可能创建了未处理的ThreadExceptionEventHandler?据我所知,它与此[问题]是同一问题。谢谢您的回答。您提到的问题似乎是关于在VisualStudio中调试时的行为。我在内部和外部都观察到了这种行为,但我承认,这两次都是调试构建。我没有在发布版本中尝试我的测试。