Практическое руководство. Запись в журнал сведений об исключениях в Visual Basic
Обновлен: Ноябрь 2007
Объекты My.Application.Log и My.Log можно использовать для записи в журнал информации об исключениях, возникающих в приложении. В этих примерах показано, как использовать метод My.Application.Log.WriteException для регистрации в журнале явно перехватываемых и необработанных исключений.
Для записи в журнал данных трассировки используйте метод My.Application.Log.WriteEntry. Дополнительные сведения см. в разделе Метод WriteEntry (My.Application.Log и My.Log).
Регистрация обработанного исключения в журнале
Создайте метод, который будет генерировать информацию об исключении.
Public Sub ExceptionLogTest(ByVal fileName As String) End Sub
Используйте блок Try...Catch для перехвата исключения.
Try Catch ex As Exception End Try
Поместите код, который может сгенерировать исключение, в блок Try.
Удалите комментарий строки Dim и MsgBox, чтобы возникло исключение NullReferenceException.
' Code that might generate an exception goes here. ' For example: ' Dim x As Object ' MsgBox(x.ToString)
В блоке Catch используйте метод My.Application.Log.WriteException для записи информации об исключении.
My.Application.Log.WriteException(ex, _ TraceEventType.Error, _ "Exception in ExceptionLogTest " & _ "with argument " & fileName & ".")
Регистрация необработанного исключения в журнале
Выберите проект в Обозревателе решений. В меню Проект выберите пункт Свойства.
Перейдите на вкладку Приложение.
Нажмите кнопку Просмотреть события приложения, чтобы открыть редактор кода.
Откроется файл ApplicationEvents.vb.
Откройте в редакторе кода файл ApplicationEvents.vb. В меню Общие выберите События MyApplication.
В меню Объявления выберите UnhandledException.
Приложение инициирует событие UnhandledException перед запуском главного приложения.
Добавьте метод My.Application.Log.WriteException к обработчику событий UnhandledException.
My.Application.Log.WriteException(e.Exception, _ TraceEventType.Critical, _ "Application shut down at " & _ My.Computer.Clock.GmtTime.ToString)
Пример
В этом примере показан полный код для регистрации в журнале обработанного исключения.
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
В следующем примере показан полный код для регистрации в журнале необработанного исключения. Для доступа к событиям приложения в редакторе кода можно использовать Конструктор проекта. Дополнительные сведения см. в разделе Практическое руководство. Обработка событий приложения (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
См. также
Задачи
Практическое руководство. Запись сообщений в журнал
Пошаговое руководство. Определение места записи информации для My.Application.Log
Пошаговое руководство. Изменение места записи информации для My.Application.Log
Основные понятия
Работа с журналами приложения в Visual Basic