Postupy: Protokolování výjimek v jazyce Visual Basic
Objekty a My.Log
objekty můžete použít My.Application.Log
k protokolování informací o výjimkách, ke kterým dochází ve vaší aplikaci. Tyto příklady ukazují, jak použít metodu My.Application.Log.WriteException
k protokolování výjimek, které zachytíte explicitně a výjimky, které jsou neošetřené.
Pro protokolování trasování informací použijte metodu My.Application.Log.WriteEntry
. Další informace viz WriteEntry.
Protokolování zpracovávané výjimky
Vytvořte metodu, která vygeneruje informace o výjimce.
Public Sub ExceptionLogTest(ByVal fileName As String) End Sub
Try...Catch
K zachycení výjimky použijte blok.Try Catch ex As Exception End Try
Vložte kód, který by mohl vygenerovat výjimku v
Try
bloku.Zrušte
Dim
komentář aMsgBox
řádky, aby způsobily NullReferenceException výjimku.' Code that might generate an exception goes here. ' For example: ' Dim x As Object ' MsgBox(x.ToString)
Catch
V bloku použijte metoduMy.Application.Log.WriteException
k zápisu informací o výjimce.My.Application.Log.WriteException(ex, TraceEventType.Error, "Exception in ExceptionLogTest " & "with argument " & fileName & ".")
Následující příklad ukazuje úplný kód pro protokolování zpracovávané výjimky.
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
Protokolování neošetřené výjimky
Vyberte projekt v Průzkumník řešení. V nabídce Projekt zvolte Vlastnosti.
Klikněte na kartu Aplikace .
Kliknutím na tlačítko Zobrazit události aplikace otevřete Editor kódu.
Tím se otevře soubor ApplicationEvents.vb.
Otevřete soubor ApplicationEvents.vb v Editoru kódu. V nabídce Obecné zvolte Události aplikace MyApplication.
V nabídce Deklarace zvolte UnhandledException.
Aplikace vyvolá UnhandledException událost před spuštěním hlavní aplikace.
Přidejte metodu
My.Application.Log.WriteException
do obslužné rutinyUnhandledException
události.My.Application.Log.WriteException(e.Exception, TraceEventType.Critical, "Application shut down at " & My.Computer.Clock.GmtTime.ToString)
Následující příklad ukazuje úplný kód pro protokolování neošetřené výjimky.
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