Share via


Cómo: Mantener el control cuando se produce un error (Visual Basic)

Puede utilizar la construcción Instrucción Try...Catch...Finally (Visual Basic) para el control de excepciones estructurado. Permite ejecutar un bloque concreto de instrucciones si se produce una excepción especificada mientras se ejecuta el código. Cuando esto ocurre, se dice que el código provoca la excepción, que se detecta con la instrucción Catch correspondiente.

Para ejecutar un conjunto de instrucciones si su código produce una excepción

  • Utilice la construcción Try...Catch...Finally para agregar el código que puede producir una excepción. A continuación, especifique el código que se va a ejecutar si aparece una excepción y proporcione opcionalmente un conjunto de instrucciones que se ejecutará antes de que el control salga de la construcción Try...Catch...Finally.

    En el ejemplo siguiente, se intenta calcular la fecha y la hora de 100 años después exactamente a partir del valor que se proporciona en la variable givenDate de Object.

    Dim givenDate As Object
    Dim nextCentury As Date
    Try
        nextCentury = Microsoft.VisualBasic.DateAdd("yyyy", 100, givenDate)
        Catch thisExcep As System.ArgumentOutOfRangeException
        ' The resulting date/time is later than December 31, 9999.
        Catch thisExcep As System.ArgumentException
        ' At least one argument has an invalid value.
        Catch thisExcep As System.InvalidCastException
        ' The value in givenDate cannot be interpreted as a date/time.
        Catch
        ' An unforeseen exception has occurred.
        Finally
        ' This block is always run before leaving the Try structure.
    End Try
    

    Los tres primeros bloques Catch controlan las excepciones que puede esperar de la función DateAdd. Puede tratar con cualquier excepción inesperada en el último bloque Catch.

    Con independencia de lo que suceda, el bloque Finally es siempre el código que se ejecuta en último lugar antes de salir de la construcción Try...Catch...Finally. Si crea o abre los recursos como conexiones a objetos o a bases de datos en el bloque Try o Catch, puede utilizar el bloque Finally para cerrarlos y desecharlos, si es necesario.

    Si no aparece la variable de excepción thisExcep en una instrucción de declaración como Dim, la instrucción Catch con la cláusula As actúa como una declaración.

Vea también

Tareas

Cómo: Transferir el control fuera de una estructura de control (Visual Basic)

Cómo: Ejecutar instrucciones en función de una o varias condiciones (Visual Basic)

Cómo: Probar varios valores de una expresión (Visual Basic)

Conceptos

Estructuras de decisión (Visual Basic)

Estructuras de bucles (Visual Basic)

Estructuras de control adicionales (Visual Basic)

Estructuras de control anidadas (Visual Basic)

Otros recursos

Flujo de control en Visual Basic