【发布时间】:2013-03-07 21:12:17
【问题描述】:
我刚刚在 .Net 中遇到了异常处理的奇怪行为。 (我在 MS Visual Studio 2008 中使用 C#,但我在这里看到的一个问题似乎暗示我所看到的在整个 .Net 世界中都是正确的。)我正在编写一个普通的 WinForm 应用程序。我故意在任何 try 块之外的 form_load 事件处理程序中引发未处理的异常。我没有收到任何通知。如果在正常方法中发生未处理的异常,则会弹出一条消息,告诉我发生了异常,并提供有关该问题的一些信息。但是在处理程序中,代码只是悄悄地退出函数,而不让任何人知道它发生了。如果我添加一个 try/catch 块,异常会按预期捕获。
这种行为是否确实发生在所有事件处理程序中?这是预期的行为吗?如果是这样,是不是因为如果事件处理程序意外停止,就会有太多坏事发生的危险?
【问题讨论】:
-
您是否可能创建了 UnhandledThreadExceptionEventHandler?
-
从我读到的,这看起来和这个[问题]stackoverflow.com/questions/10647551/…的问题是一样的
-
感谢您的回复。您引用的问题似乎是在讨论在 Visual Studio 中调试时的行为。我在 VS 内部和外部都观察到了这种行为。不过,我承认,这两次都是调试版本。我没有在发布版本中尝试我的测试。
标签: .net exception event-handling