我有一個Windows窗體應用程序,它具有全局錯誤處理程序以顯示意外錯誤。Winforms應用程序中使用全局錯誤處理程序異常處理的問題
Namespace My
Class MyApplication
Delegate Sub ProcessParametersDelegate(ByVal sender As Object, ByVal args() As String)
Private Sub MyApplication_UnhandledException(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) Handles Me.UnhandledException
Dim ErrorText As String = e.Exception.Message & ", " & e.Exception.StackTrace
Try
MessageBox.Show("Global Error Handler: An unhandled error occurred. It will be copied to your clipboard upon OKing this message: " & ErrorText)
Clipboard.SetText(ErrorText)
Catch ex As Exception
End Try
End Sub
End Class
End Namespace
在VS2008中,我有我的調試 - >設置爲默認值,這是對所有未處理的異常引發錯誤例外選項。
我有幾個問題:
1)對同一部署的代碼,我有時會行號顯示的堆棧跟蹤錯誤信息,有時不這樣做,即使錯誤消息包括我寫的源代碼而不是引用的二進制文件。該項目使用DEBUG配置進行編譯。當發生錯誤
2)申請奇怪最小化到托盤(我瘦是不可能的,任何人都可以診斷這個問題的w/o我更多的代碼貼出來,但我會反正提到它)
3 )當我試圖故意引發一個錯誤,例如,除以零,希望通過全局錯誤處理程序進行測試時,我從交互式調試器中收到一條對話框錯誤消息,而不是跳入我的全局錯誤處理程序(我想調試,因爲除了我發佈的內容,還有更多。)你有任何想法如何觸發並強制執行全局事件處理程序嗎?
您的答案聽起來不錯,但沒有奏效。我遵循了指示,並且斷點從未被擊中。在這種情況下,異常處理程序使用StackTrace方法以及建議的.ToString方法顯示行號信息,但我相信這個建議可能是一個很好的建議。 – ChadD 2009-09-09 20:01:11
2分鐘我的視頻按照你的指示 – ChadD 2009-09-09 20:04:55
忘記發佈URL:http://screencast.com/t/ZPv00EOrCnTl – ChadD 2009-09-09 20:05:27