2012-02-09 5 views
2

Visual Basic .NET 2008で複雑なアプリケーションを作成していましたが、テスト段階に入っているので、プログラムをクラッシュさせるようなエラーが頻繁に発生します。問題は、現在プログラムを使用している人を記録するトラッキング・ピースがあることです。ユーザーがログインすると、現在ログインしていることを記録し、フォーム終了イベントが発生した場合は、ログを削除して閉じたことを示します。エラーイベントの取得

私の問題は、フォームがエラーからクラッシュすると、クローズイベントをトリガーしないため、ログが不正確になるために発生します。私の質問は、フォームがイベントの形で持つエラーをキャプチャすることが可能な場合ですか?

答えて

3

ソリューションエクスプローラで[マイプロジェクト]をダブルクリックしてみてください。

[アプリケーション]タブの下に、[アプリケーションイベントの表示]ボタンがあります。クリックして。

「ApplicationEvents」ファイルが表示されます。 UnhandledExceptionイベントを選択します。

それは次のようになります。

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(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) Handles Me.UnhandledException 
     // log your exception here. 
    End Sub 
    End Class 

End Namespace 

注:このイベントはwhile a debugger is attachedを発生しません。

+0

優れた応答と例をありがとう。これはまさに私が探していたものです! –

0

Try...Catchブロックの周りにコードをラップして、スローされた例外をキャッチすることができます。

例:

Public Sub testProgram() 

     Try 

      'the code goes here 

     Catch ex As Exception 

      MessageBox.Show(ex.ToString) 

     End Try 

End Sub 

が実際に例外処理は、開発段階で行うべきです。今これを行うのは面倒な作業です。

+0

グローバルなtry-catchは、アプリケーションのリリースバージョンでは機能しません。 ThreadExceptionを処理したいと思うでしょう。 http://www.codeproject.com/Articles/7482/User-Friendly-Exception-Handlingを参照してください。 –

+0

とにかく、デバッグモードでは、グローバルなtry-catchは必要ありません。特定の行にクラッシュさせたい間違っているしたがって、未処理の例外に対する例外処理は、リリースでのみ行う必要があります。 –

関連する問題