Udostępnij za pośrednictwem


Porady: rejestrowanie wyjątków w Visual Basic

Możesz użyć obiektów My.Application.Log oraz My.Log, aby rejestrować informacje o wyjątkach występujących w twojej aplikacji. W tych przykładach pokazano, jak używać metody My.Application.Log.WriteException do rejestrowania wyjątków, które przechwytujesz jawnie, oraz wyjątków nieobsługiwanych.

W przypadku rejestrowania informacji śledzenia użyj metody My.Application.Log.WriteEntry. Aby uzyskać więcej informacji, zobacz WriteEntry

Aby zarejestrować obsłużony wyjątek

  1. Utwórz metodę, która wygeneruje informacje o wyjątku.

    Public Sub ExceptionLogTest(ByVal fileName As String)
    End Sub
    
  2. Użyj bloku Try...Catch, aby przechwycić wyjątek.

    Try
    Catch ex As Exception
    End Try
    
  3. Umieść kod, który może wygenerować wyjątek w Try bloku.

    Usuń komentarz z wierszy Dim i MsgBox, aby spowodować wyjątek NullReferenceException.

    ' Code that might generate an exception goes here.
    ' For example:
    '    Dim x As Object
    '    MsgBox(x.ToString)
    
  4. Catch W bloku użyj My.Application.Log.WriteException metody aby zapisać informacje o wyjątku.

    My.Application.Log.WriteException(ex,
        TraceEventType.Error,
        "Exception in ExceptionLogTest " &
        "with argument " & fileName & ".")
    

    W poniższym przykładzie pokazano pełny kod rejestrowania obsługiwanego wyjątku.

    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
    

Aby zarejestrować nieobsługiwany wyjątek

  1. Wybierz projekt w Eksploratorze rozwiązań. W menu Projekt wybierz pozycję Właściwości.

  2. Kliknij kartę Aplikacja .

  3. Kliknij przycisk Wyświetl zdarzenia aplikacji , aby otworzyć Edytor kodu.

    Spowoduje to otwarcie pliku ApplicationEvents.vb.

  4. Otwórz plik ApplicationEvents.vb w Edytorze kodu. W menu Ogólne wybierz pozycję MyApplication Events (Zdarzenia aplikacji).

  5. W menu Deklaracje wybierz pozycję UnhandledException.

    Aplikacja zgłasza UnhandledException zdarzenie przed uruchomieniem głównej aplikacji.

  6. Dodaj metodę My.Application.Log.WriteException do procedury obsługi zdarzeń UnhandledException .

    My.Application.Log.WriteException(e.Exception,
        TraceEventType.Critical,
        "Application shut down at " &
        My.Computer.Clock.GmtTime.ToString)
    

    W poniższym przykładzie pokazano pełny kod rejestrowania nieobsługiwanego wyjątku.

    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
    

Zobacz także