現在Visual Studio 2015をインストールしているため、IDEからコードを実行中に未処理の例外がスローされることはありません。未処理の例外処理をデバッグする方法
Private Sub btnTest_Click(sender As System.Object, e As System.EventArgs) Handles btnTest.Click
Throw New System.Exception("An unhandled test exception has occurred.")
End Sub
のみコードをIDEで実行されていない場合は、通常の実行時に動作します:私は私の未処理の例外コードが、私のコードを行使したいです。
未処理の例外コードをIDEでどのようにデバッグできますか?
私はDebug、Windows、例外設定を見ましたが、私は何をしたいのかわかりません。 IDEが例外をキャプチャせずに未処理の例外を許可するもう一つのグローバル設定がありますか?
私は、イベントをフックするApplicationsEvents.vbを使用しています:
:Namespace My
' The following events are available for MyApplication:
'
' Startup: Raised when the application starts, before the startup form is created.
' Shutdown: Raised after all application forms are closed. This event is not raised if the application terminates abnormally.
' UnhandledException: Raised if the application encounters an unhandled exception.
' StartupNextInstance: Raised when launching a single-instance application and the application is already active.
' NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected.
Partial Friend Class MyApplication
Private Sub MyApplication_UnhandledException(sender As Object, e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) Handles Me.UnhandledException
ExpLog.LogUnhandledException(e, sender)
e.ExitApplication = Not ExpLog.InformUser
End Sub
End Class
End Namespace
決議は、ハンドラによって呼び出されたコードを行使し、テストスタブを作成することでした
Private Sub Button6_Click(sender As System.Object, e As System.EventArgs) Handles btnMisc_Throw.Click
If ExpLog.InformUser() Then
MsgBox("Continue")
Else
MsgBox("End Program")
End If
ExpLog.LogMsgBox(New System.Exception("test unhandled exception"), "test LogMsgBox()",,, "programmer note")
End Sub
これはハンドラのテストを許可しませんが、ハンドラが呼び出すコードを実行します。私は5 +年前にこれを考え出した... :(
にハンドラを追加する。 – rheitzman
した後、いくつかの古いコメントを見てみます私はあなたのコードを試して、それが動作しないことを確認します。可能であれば、私がやったやり方を試してみてください。 – djv
私はMDIコンテナ(フォームレベル)からテスト例外を投げてみました。 )あなたの方法はスタンドアロン形式で作業しましたが、私はスタンドアロンとMDI-Child形式が混在しているので、アプリケーションレベルで未処理のイベントをキャプチャする必要があります。 – rheitzman