Gewusst wie: Protokollieren von Ausnahmen in Visual Basic
Aktualisiert: November 2007
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-Methode ("My.Application.Log" und "My.Log").
So protokollieren Sie eine behandelte Ausnahme
Erstellen Sie die Methode, die die Ausnahmeinformationen generiert.
Public Sub ExceptionLogTest(ByVal fileName As String) End Sub
Verwenden Sie einen Try...Catch-Block, um die Ausnahme abzufangen.
Try Catch ex As Exception End Try
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)
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 & ".")
So protokollieren Sie eine nicht behandelte Ausnahme
Wählen Sie im Projektmappen-Explorer ein Projekt aus. Klicken Sie im Menü Projekt auf Eigenschaften.
Klicken Sie auf die Registerkarte Anwendung.
Klicken Sie auf die Schaltfläche Anwendungsereignisse anzeigen, um den Code-Editor zu öffnen.
Daraufhin wird die Datei ApplicationEvents.vb geöffnet.
Öffnen Sie die Datei ApplicationEvents.vb im Code-Editor. Klicken Sie im Menü Allgemein auf MyApplication-Ereignisse.
Klicken Sie im Menü Deklarationen auf UnhandledException.
Die Anwendung löst vor dem Start der Hauptanwendung das UnhandledException-Ereignis aus.
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)
Beispiel
In diesem 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
Im folgenden Beispiel wird der vollständige Code für die Protokollierung einer nicht behandelten Ausnahme gezeigt. Sie können mit dem Projekt-Designer auf die Anwendungsereignisse im Code-Editor zuzugreifen. Weitere Informationen finden Sie unter Gewusst wie: Behandeln von Anwendungsereignissen (Visual Basic).
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
Exemplarische Vorgehensweise: Bestimmen, wohin "My.Application.Log" Informationen schreibt
Exemplarische Vorgehensweise: Ändern des Ortes, in den "My.Application.Log" Informationen schreibt
Konzepte
Arbeiten mit Anwendungsprotokollen in Visual Basic