Como registrar em log as exceções no Visual Basic

É possível usar os objetos My.Application.Log e My.Log para registrar em log informações sobre exceções que ocorrem em um aplicativo. Esses exemplos mostram como usar o método My.Application.Log.WriteException para registrar em log exceções capturadas explicitamente e exceções sem tratamento.

Para registrar informações de rastreamento de registros em log, use o método My.Application.Log.WriteEntry. Para obter mais informações, consulte WriteEntry.

Registrar em log uma exceção manipulada

  1. Crie o método que gerará as informações de exceção.

    Public Sub ExceptionLogTest(ByVal fileName As String)
    End Sub
    
  2. Use um bloco Try...Catch para capturar a exceção.

    Try
    Catch ex As Exception
    End Try
    
  3. Coloque o código que poderá gerar uma exceção no bloco Try.

    Remova a marca de comentário das linhas Dim e MsgBox para lançar uma exceção NullReferenceException.

    ' Code that might generate an exception goes here.
    ' For example:
    '    Dim x As Object
    '    MsgBox(x.ToString)
    
  4. No bloco Catch, use o método My.Application.Log.WriteException para gravar as informações de exceção.

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

    O exemplo a seguir mostra o código completo para registrar em log uma exceção manipulada.

    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
    

Registrar em log uma exceção sem tratamento

  1. Selecione um projeto no Gerenciador de Soluções. No menu Projeto, escolha Propriedades.

  2. Clique na guia Aplicativo.

  3. Clique no botão Exibir Eventos de Aplicativo para abrir o Editor de Códigos.

    Isso abrirá o arquivo ApplicationEvents.vb.

  4. Abra o arquivo ApplicationEvents.vb no Editor de Códigos. No menu Geral, escolha Eventos MyApplication.

  5. No menu Declarações, escolha UnhandledException.

    A aplicativo gera o evento UnhandledException antes da execução do aplicativo principal.

  6. Adicione o método My.Application.Log.WriteException ao manipulador de eventos UnhandledException.

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

    O exemplo a seguir mostra o código completo para registrar em log uma exceção sem tratamento.

    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
    

Confira também