Практическое руководство. Запись в журнал сведений об исключениях в Visual Basic

Объекты My.Application.Log и My.Log можно использовать для записи в журнал сведений об исключениях, возникающих в приложении. Эти примеры демонстрируют применение метода My.Application.Log.WriteException для регистрации явно перехваченных исключений и исключений, которые не обрабатываются.

Для записи сведений в журнал используйте метод My.Application.Log.WriteEntry. Дополнительные сведения см. в разделе WriteEntry.

Запись обработанного исключения в журнал

  1. Создайте метод, который будет генерировать сведения об исключении.

    Public Sub ExceptionLogTest(ByVal fileName As String)
    End Sub
    
  2. Воспользуйтесь блоком Try...Catch для перехвата исключения.

    Try
    Catch ex As Exception
    End Try
    
  3. Поместите код, который может генерировать исключение, в блок Try.

    Раскомментируйте строки Dim и MsgBox, чтобы вызвать исключение NullReferenceException.

    ' Code that might generate an exception goes here.
    ' For example:
    '    Dim x As Object
    '    MsgBox(x.ToString)
    
  4. В блоке Catch для записи сведений об исключении используйте метод My.Application.Log.WriteException.

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

    В следующем примере показан полный код для записи обработанного исключения в журнал.

    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
    

Запись необработанного исключения в журнал

  1. Выберите проект в Обозревателе решений. В меню Проект выберите Свойства.

  2. Перейдите на вкладку Приложение .

  3. Нажмите кнопку Просмотреть события приложения , чтобы открыть редактор кода.

    Откроется файл ApplicationEvents.vb.

  4. Откройте в редакторе кода файл ApplicationEvents.vb. В меню Общие выберите пункт События MyApplication.

  5. В меню Объявления выберите пункт UnhandledException.

    Приложение создает событие UnhandledException до запуска главного приложения.

  6. Добавьте метод My.Application.Log.WriteException в обработчик событий UnhandledException .

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

    В следующем примере показан полный код для записи необработанного исключения в журнал.

    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
    

См. также