Freigeben über


Vorgehensweise: Protokollieren von Ausnahmen in Visual Basic

Mit den My.Application.Log Objekten My.Log können Sie Informationen zu Ausnahmen protokollieren, die in Ihrer Anwendung auftreten. In diesen Beispielen wird gezeigt, wie Sie die My.Application.Log.WriteException Methode verwenden, um Ausnahmen zu protokollieren, die Sie explizit erfassen, und Ausnahmen, die nicht behandelt werden.

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

So protokollieren Sie eine behandelte 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. Setzen Sie den Code, der eine Ausnahme auslösen könnte, in den Try-Block.

    Entkommentieren Sie die Dim- und MsgBox-Zeilen, um eine NullReferenceException-Ausnahme zu verursachen.

    ' 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 zum 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
    

So protokollieren Sie eine unbehandelte Ausnahme

  1. Ein Projekt auswählen in Projektmappen-Explorer. Wählen Sie im Menü "Projekt " die Option "Eigenschaften" aus.

  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 ApplicationEvents.vb Datei geöffnet.

  4. Lassen Sie die ApplicationEvents.vb Datei im Code-Editor geöffnet. Wählen Sie im Menü "Allgemein " die Option "MyApplication-Ereignisse" aus.

  5. Wählen Sie im Menü " Deklarationen " die Option "UnhandledException" aus.

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

  6. Fügen Sie die My.Application.Log.WriteException Methode dem 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 zum Protokollieren einer unbehandelten 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