Sdílet prostřednictvím


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

  1. Vytvořte metoda, která bude generovat informace o výjimce.

    Public Sub ExceptionLogTest(ByVal fileName As String)
    End Sub
    
  2. Použijte blok Try...Catch k zachycení výjimky.

    Try
    Catch ex As Exception
    End Try
    
  3. 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)
    
  4. 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

  1. Mějte projekt vybrán v Průzkumníku řešení. V menu Projekt vyberte Vlastnosti.

  2. Klikněte na záložku Aplikace.

  3. Klikněte na tlačítko Zobrazení události aplikace k otevření editoru kódu.

    Otevřete soubor ApplicationEvents.vb.

  4. Mějte soubor ApplicationEvents.vb otevřený v editoru kódu. Z nabídky Obecné zvolte události MyApplication.

  5. V nabídce Deklarace zvolte UnhandledException.

    Aplikace vyvolá událost UnhandledException před tím než se spustí hlavní aplikace.

  6. 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

WriteEntry

WriteException

Koncepty

Práce s protokoly aplikace v jazyce Visual Basic