Postupy: Jak protokolovat vyjímky v jazyce Visual Basic
Můžete použít objekty My.Application.Log a My.Log k protokolování informací o vyjímkách, ke kterým dochází v aplikaci. Tyto příklady ukazují, jak používat metodu My.Application.Log.WriteException k protokolování explicitně zachycených výjimek a výjimek, které nejsou zpracovány.
K protokolování trasovacích informací, použijte metodu My.Application.Log.WriteEntry. Další informace získáte v tématu WriteEntry
Chcete-li protokolovat zpracování výjimek
Vytvořte metoda, která bude generovat informace o výjimce.
Public Sub ExceptionLogTest(ByVal fileName As String) End Sub
Použijte blok Try...Catch k zachycení výjimky.
Try Catch ex As Exception End Try
Vložit kód, který může generovat výjimky do bloku Try.
Odkomentujte řádky Dim a MsgBox, což způsobí vyjímku NullReferenceException.
' Code that might generate an exception goes here. ' For example: ' Dim x As Object ' MsgBox(x.ToString)
Blok Catch používá metodu My.Application.Log.WriteException k zápisu informací o výjimce.
My.Application.Log.WriteException(ex, TraceEventType.Error, "Exception in ExceptionLogTest " & "with argument " & fileName & ".")
Chcete-li protokolovat neošetřené výjimky
Mějte projekt vybrán v Průzkumníku řešení. V menu Projekt vyberte Vlastnosti.
Klikněte na záložku Aplikace.
Klikněte na tlačítko Zobrazení události aplikace k otevření editoru kódu.
Otevřete soubor ApplicationEvents.vb.
Mějte soubor ApplicationEvents.vb otevřený v editoru kódu. Z nabídky Obecné zvolte události MyApplication.
V nabídce Deklarace zvolte UnhandledException.
Aplikace vyvolá událost UnhandledException před tím než se spustí hlavní aplikace.
Přidejte metodu My.Application.Log.WriteException do obslužné rutiny události UnhandledException.
My.Application.Log.WriteException(e.Exception, TraceEventType.Critical, "Application shut down at " & My.Computer.Clock.GmtTime.ToString)
Příklad
V tomto příkladu dojde k zobrazení kompletního kód protokolování zpracování výjimek.
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
V dalším příkladu dojde k zobrazení kompletní kód pro protokolování neošetřené výjimky. Můžete použít Návrhář projektu pro přístup k událostem aplikace v editoru kódu. Další informace naleznete v tématu Postupy: Zpracování událostí aplikace (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
Viz také
Úkoly
Postupy: Zprávy protokolu zápisu (Visual Basic)
Podrobné pokyny: Určení, kde My.Application.Log zapisuje informace (Visual Basic)
Podrobné pokyny: Změna, kde My.Application.Log zapisuje informace (Visual Basic)
Odkaz
Microsoft.VisualBasic.Logging.Log