如何在 .NET 中禁止显示未处理的异常



我有一个 VB.Net WinForms应用程序,该应用程序在应用程序退出时引发异常。该异常仅在关闭应用程序时发生,不会影响应用程序的功能。引发的异常是 InvalidOperationException,调试器无法识别异常发生的位置,而是在 Visual Studio 2008 中,异常显示在弹出窗口中,而不引用行号。

这是其他人有完全相同的问题:http://bytes.com/topic/c-sharp/answers/659366-invalidoperationexception-appeared-after-introduction-webbrowser-control

如此链接中所述,异常是间歇性的,但与 WebBrowser 控件有某种关系,因为仅当显示至少 2 个带有 WebBrowser 控件的窗体时,才会发生退出应用程序时的异常。(或者一个窗体,其中 Web 浏览器控件打开和关闭两次。

现在 VB.Net 我可以在 AppDomain.CurrentDomain.UnhandledException 处理程序中捕获异常,但我设法阻止 Windows 报告异常的唯一方法是使用 MessageBox 在处理程序中显示消息。如果我在处理程序中关闭 MessageBox.Show 调用,则在应用程序关闭时报告异常。

有谁知道我可以在 UnhandledException 处理程序中抑制此异常的方法,以便应用程序始终干净地退出?

我发现我的问题的答案是对这个问题的回答之一:

如何使用 ThreadException?

将此添加到 UnhandledException 方法中,以防止显示 Windows 崩溃通知:

环境退出(1(

感谢Hans Passant提供这些有用的信息。

相关内容

最新更新