Compartilhar via


Como: Log Exceptions in Visual Basic

Você pode usar os objetos My.Application.Log e My.Log para criar um log de informações sobre exceções que ocorrem em seu aplicativo. Esses exemplos mostram como usar o método My.Application.Log.WriteException para registrar exceções que você tratou explicitamente com catch e exceções que não estão tratadas.

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

Para registrar uma exceção manipulada

  1. Crie o método que irá gerar as informações da 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.

    Tire os comentários das linhas Dim e MsgBox para causar 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 & ".")
    

Para registrar uma exceção não tratada

  1. Tenha um projeto selecionado no Solution Explorer. No menu Project, escolha Properties.

  2. Clique na guia Application.

  3. Clique no botão View Application Events para abrir o Editor de Código.

    Isso abre o arquivo ApplicationEvents.vb.

  4. Deixe o arquivo ApplicationEvents.vb aberto no Editor do Código. No menu General, escolha MyApplication Events.

  5. No menu Declarations, escolha UnhandledException.

    Gera a aplicativo de UnhandledException o evento antes da execução de aplicativo principal.

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

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

Exemplo

Este exemplo mostra o código completo para registrar 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

O próximo exemplo mostra o código completo para registrar uma exceção não manipulada. Você pode usar o Project Designer para acessar os eventos do aplicativo no Editor de Código. Para obter mais informações, consulte Como: Manipular eventos de aplicativo (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

Consulte também

Tarefas

Como: Gravar mensagens de Log (Visual Basic)

Demonstra Passo a passo: Determinar onde My.Application.Log grava informações (Visual Basic)

Demonstra Passo a passo: Alterando onde My.Application.Log grava informações (Visual Basic)

Referência

Microsoft.VisualBasic.Logging.Log

WriteEntry

WriteException

Conceitos

Trabalhando com logs de aplicativos em Visual Basic