Freigeben über


Gewusst wie: Protokollieren von Ausnahmen in Visual Basic

Sie können das My.Application.Log-Objekt und das My.Log-Objekt verwenden, um Informationen über in der Anwendung auftretende Ausnahmen zu protokollieren. In diesen Beispielen wird gezeigt, wie mithilfe der My.Application.Log.WriteException-Methode sowohl explizit abgefangene als auch unbehandelte Ausnahmen protokolliert werden können.

Verwenden Sie für das Protokollieren von Ablaufverfolgungsdaten die My.Application.Log.WriteEntry-Methode. 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 generieren könnte, in den Try-Block.

    Heben Sie die Auskommentierung der Codezeilen Dim und MsgBox auf, 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 & ".")
    

    Im folgenden Beispiel wird der vollständige Code für die Protokollierung einer behandelten Ausnahme gezeigt.

    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 nicht behandelte Ausnahme

  1. Wählen Sie im Projektmappen-Explorer ein Projekt aus. 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.

    Daraufhin wird die Datei ApplicationEvents.vb geöffnet.

  4. Öffnen Sie die Datei ApplicationEvents.vb im Code-Editor. Klicken Sie im Menü Allgemein auf MyApplication-Ereignisse.

  5. Klicken Sie im Menü Deklarationen auf UnhandledException.

    Die Anwendung löst vor dem Ausführen der Hauptanwendung das UnhandledException-Ereignis aus.

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

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

    Im folgenden Beispiel wird der vollständige Code für die Protokollierung eines Ausnahmefehlers an.

    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

Aufgaben

Gewusst wie: Schreiben von Protokollmeldungen (Visual Basic)

Exemplarische Vorgehensweise: Bestimmen, wohin "My.Application.Log" Informationen schreibt (Visual Basic)

Exemplarische Vorgehensweise: Ändern des Orts, in den "My.Application.Log" Informationen schreibt (Visual Basic)

Referenz

Log

WriteEntry

WriteException

Konzepte

Arbeiten mit Anwendungsprotokollen in Visual Basic