Compartir a través de


Cómo: Mantener el control cuando se produce un error

Actualización: noviembre 2007

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 primeros tres bloques Catch controlan las excepciones que puede esperar de DateAdd (Función, Visual Basic). 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

Cómo: Ejecutar instrucciones en función de una o varias condiciones

Cómo: Probar varios valores de una expresión

Conceptos

Estructuras de decisión

Estructuras de bucles

Estructuras de control adicionales

Estructuras de control anidadas

Otros recursos

Flujo de control en Visual Basic