Cómo: Registrar excepciones en Visual Basic

Actualización: noviembre 2007

Puede utilizar los objetos My.Application.Log y My.Log para registrar información sobre excepciones que se producen en la aplicación. Estos ejemplos muestran cómo utilizar el método My.Application.Log.WriteException para registrar excepciones que detecta explícitamente y excepciones que no se controlan.

Para registrar información de traza, utilice el método My.Application.Log.WriteEntry. Para obtener más información, vea WriteEntry (Método, My.Application.Log y My.Log).

Para registrar una excepción controlada

  1. Cree el método que generará la información de excepción.

    Public Sub ExceptionLogTest(ByVal fileName As String)
    End Sub
    
  2. Utilice un bloque Try...Catch para detectar la excepción.

    Try
    Catch ex As Exception
    End Try
    
  3. Coloque el código que podría generar una excepción en el bloque Try.

    Quite los comentarios de las líneas Dim y MsgBox para provocar una excepción NullReferenceException.

    ' Code that might generate an exception goes here.
    ' For example:
    '    Dim x As Object
    '    MsgBox(x.ToString)
    
  4. En el bloque Catch, utilice el método My.Application.Log.WriteException para escribir la información de excepción.

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

Para registrar una excepción no controlada

  1. Tenga seleccionado un proyecto en el Explorador de soluciones. En el menú Proyecto, elija Propiedades.

  2. Haga clic en la ficha Aplicación.

  3. Haga clic en el botón Ver eventos de aplicaciones para abrir el Editor de código.

    Así abre el archivo ApplicationEvents.vb.

  4. Tenga abierto el archivo ApplicationEvents.vb en el Editor de código. En el menú General, elija Eventos de MyApplication.

  5. En el menú Declaraciones, elija UnhandledException.

    La aplicación provoca el evento UnhandledException antes de que se ejecute la aplicación principal.

  6. Agregue el método My.Application.Log.WriteException al controlador de eventos UnhandledException.

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

Ejemplo

Este ejemplo muestra el código completo para registrar una excepción controlada.

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

El siguiente ejemplo muestra el código completo para registrar una excepción no controlada. Puede utilizar el Diseñador de proyectos para tener acceso a los eventos de aplicación en el Editor de código. Para obtener más información, vea Cómo: Controlar eventos de aplicaciones (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

Vea también

Tareas

Cómo: Escribir mensajes de registro

Tutorial: Determinar el lugar en el que My.Application.Log escribe la información

Tutorial: Cambiar el lugar donde My.Application.Log escribe información

Conceptos

Trabajar con registros de aplicación en Visual Basic

Referencia

My.Application.Log (Objeto)

My.Log (Objeto)

WriteEntry (Método, My.Application.Log y My.Log)

WriteException (Método, My.Application.Log y My.Log)