2012-05-22 68 views
1

我有一個VB.Net WinForms應用程序在應用程序退出時引發異常。例外只有發生在關閉應用程序,並且不會影響應用程序的功能。拋出的異常是InvalidOperationException並且調試程序無法識別發生異常的位置,而在Visual Studio 2008中,異常顯示在彈出窗口中而沒有引用行號。如何在.Net中抑制UnhandledException

這裏是別人有完全一樣的問題: 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

我在這裏看到兩個選項。要麼創建一個Rug的新實例並調用它的SweepUnder方法,或者嘗試找出實際導致問題的原因並對其進行修復。只是因爲互聯網上的一些隨機人員找不到解決方案並不意味着你不能。嘗試將你的問題減少到再現錯誤的最簡單的例子。如果您仍然無法弄清楚,請在此發佈簡化代碼,以便我們都可以運行它併爲我們自己重現錯誤。 –

+0

我花了很多時間試圖解決這個錯誤,但是它的間歇性使得它很難調試。問題是我現在沒有時間的奢侈,因爲這個應用程序需要在昨天進行部署! (開發者生活的故事!)這並不是說我不會再看這個問題,而當我這樣做時,我會用一個例子發佈一個單獨的問題。但是這個問題的關鍵是:_IS_有辦法將異常報告抑制爲臨時快速修復,這樣我就可以部署我的應用了。如果地毯上有SweepUnder方法,我會立即採取行動! – BruceHill

回答

1

我找到了答案,我的問題的答覆這個問題之一:

How to use ThreadException?

一下添加到UnhandledException方法,以防止顯示了在Windows崩潰通知:

環境。退出(1)

感謝Hans Passant獲取此有用信息。

+0

+1發佈解決方案,即使我希望你會在不久的將來適當修復它。 –

+0

感謝+1,Mark。我將在不久的將來創建一個單獨的問題來正確處理例外情況。我會在這裏發佈一個鏈接到這個問題。再次感謝。 – BruceHill