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
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 Ausführen 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 (Visual Basic)
Referenz
Microsoft.VisualBasic.Logging.Log