Compartilhar via


Como registrar exceções no Visual Basic

Você pode usar os objetos My.Application.Log e My.Log para registrar informações sobre exceções que ocorrem em seu aplicativo. Esses exemplos mostram como usar o My.Application.Log.WriteException método para registrar exceções que você captura explicitamente e exceções sem tratamento.

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

Para registrar em log uma exceção tratada

  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 Try...Catch bloco para capturar a exceção.

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

    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 escrever 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 tratada.

    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
    

Para registrar 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 do Aplicativo para abrir o Editor de Código.

    Isso abre o arquivo ApplicationEvents.vb.

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

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

    O aplicativo aciona o UnhandledException evento antes da execução do aplicativo principal.

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

    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 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
    

Consulte também