Gewusst wie: Protokollieren von Ausnahmen in Visual Basic

Sie können die Objekte My.Application.Log und My.Log verwenden, um Informationen zu Ausnahmen zu protokollieren, die in Ihrer Anwendung auftreten. In diesen Beispielen wird gezeigt, wie Sie die My.Application.Log.WriteException-Methode verwenden können, um Ausnahmen zu protokollieren, die Sie explizit abfangen bzw. die unbehandelt sind.

Verwenden Sie für die Protokollierung von Nachverfolgungsinformationen die Methode My.Application.Log.WriteEntry. Weitere Informationen finden Sie unter WriteEntry.

Protokollieren einer behandelten Ausnahme

  1. Erstellen Sie die Methode, die die Ausnahmeinformationen generiert.

    Public Sub ExceptionLogTest(ByVal fileName As String)
    End Sub
    
  2. Verwenden Sie einen Try...Catch-Block, um die Ausnahme abzufangen.

    Try
    Catch ex As Exception
    End Try
    
  3. Fügen Sie den Code, der eine Ausnahme generieren kann, in den Try-Block ein.

    Heben Sie die Auskommentierung der Zeilen Dim und MsgBox auf, um eine NullReferenceException-Ausnahme auszulösen.

    ' Code that might generate an exception goes here.
    ' For example:
    '    Dim x As Object
    '    MsgBox(x.ToString)
    
  4. Verwenden Sie im Catch-Block die My.Application.Log.WriteException-Methode, um die Ausnahmeinformationen zu schreiben.

    My.Application.Log.WriteException(ex,
        TraceEventType.Error,
        "Exception in ExceptionLogTest " &
        "with argument " & fileName & ".")
    

    Das folgende Beispiel zeigt den vollständigen Code für das Protokollieren einer behandelten Ausnahme.

    Public Sub ExceptionLogTest(ByVal fileName As String)
        Try
            ' Code that might generate an exception goes here.
            ' For example:
            '    Dim x As Object
            '    MsgBox(x.ToString)
        Catch ex As Exception
            My.Application.Log.WriteException(ex,
                TraceEventType.Error,
                "Exception in ExceptionLogTest " &
                "with argument " & fileName & ".")
        End Try
    End Sub
    

Protokollieren einer nicht behandelten Ausnahme

  1. Ein Projekt auswählen in Projektmappen-Explorer. Klicken Sie im Menü Projekt auf Eigenschaften.

  2. Klicken Sie auf die Registerkarte Anwendung .

  3. Klicken Sie auf die Schaltfläche Anwendungsereignisse anzeigen um den Code-Editor zu öffnen.

    Dadurch wird die Datei "ApplicationEvents.vb" geöffnet.

  4. Öffnen Sie die Datei "ApplicationEvents.vb" im Code-Editor. Wählen Sie im Menü Allgemein den Eintrag MyApplication-Ereignisseaus.

  5. Wählen Sie im Menü Deklarationen den Eintrag UnhandledException aus.

    Die Anwendung löst das Ereignis UnhandledException aus, bevor die Hauptanwendung ausgeführt wird.

  6. Fügen Sie die Methode My.Application.Log.WriteException zum UnhandledException -Ereignishandler hinzu.

    My.Application.Log.WriteException(e.Exception,
        TraceEventType.Critical,
        "Application shut down at " &
        My.Computer.Clock.GmtTime.ToString)
    

    Das folgende Beispiel zeigt den vollständigen Code für das Protokollieren einer nicht behandelten Ausnahme.

    Private Sub MyApplication_UnhandledException(
        ByVal sender As Object,
        ByVal e As ApplicationServices.UnhandledExceptionEventArgs
    ) Handles Me.UnhandledException
        My.Application.Log.WriteException(e.Exception,
            TraceEventType.Critical,
            "Application shut down at " &
            My.Computer.Clock.GmtTime.ToString)
    End Sub
    

Siehe auch