如何在.Net中抑制UnhandledException

时间:2012-05-22 17:59:57

标签: winforms exception-handling vb.net-2010

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

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

正如此链接中所提到的,异常是间歇性的,但是以某种方式与WebBrowser控件相关,因为退出应用程序时的异常仅在至少显示了两个带有WebBrowser控件的表单时才会发生。 (或者打开和关闭两次WebBrowser控件的一个表单。)

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

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

1 个答案:

答案 0 :(得分:1)

我在问题的答案中找到了对这个问题的回答之一:

How to use ThreadException?

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

Environment.Exit(1)

感谢Hans Passant获取此有用信息。