Compartir a través de


try...catch...finally (Instrucción)

Implementa el control de errores para JScript.

try {
   [tryStatements]
} catch(exception) {
   [catchStatements]
} finally {
   [finallyStatements]}

Argumentos

  • tryStatements
    Opcional. Instrucciones donde puede producirse un error.

  • excepción
    Obligatorio. Cualquier nombre de variable. El valor inicial de exception es el valor del error producido.

  • catchStatements
    Opcional. Instrucciones para controlar los errores que tienen lugar en los argumentos tryStatements asociados.

  • finallyStatements
    Opcional. Instrucciones que se ejecutan incondicionalmente después de que se hayan procesado todos los demás errores.

Comentarios

La instrucción try...catch...finally proporciona un medio para controlar una parte o la totalidad de los errores que pueden producirse en un bloque de código determinado, mientras se sigue ejecutando el código. Si se producen errores que el programador no ha controlado, JScript se limita a proporcionar su mensaje de error normal al usuario, como si no hubiera control de errores.

El argumento tryStatements contiene código donde puede producirse un error, mientras que el argumento catchStatements contiene el código para controlar cualquier error que tenga lugar. Si se genera un error en el argumento tryStatements, el control de programas se pasa al argumento catchStatements para su procesamiento. El valor inicial de exception es el valor del error que se produjo en tryStatements. Si no se produce ningún error, las instrucciones de catchStatements nunca se ejecutan.

Si no es posible controlar el error en las instrucciones catchStatements asociadas al argumento tryStatements donde tuvo lugar el error, utilice la instrucción throw para transmitir o volver a producir el error en un controlador de errores de nivel superior.

Después de ejecutarse todas las instrucciones de tryStatements y procesarse todo el control de errores en catchStatements, se ejecutan incondicionalmente las instrucciones de finallyStatements

Observe que el código incluido en finallyStatements se ejecuta incluso si hay una instrucción return en los bloques try o catch, o si se produce un error en el bloque catch. Todas las instrucciones finallyStatements se ejecutan siempre, a menos que se produzca un error no controlado (por ejemplo, un error en tiempo de ejecución en el bloque catch).

Nota

Para evitar una situación potencialmente confusa, no use una instrucción return en un bloque finally. El código de un bloque finally se ejecuta tras encontrarse una instrucción return en un bloque try o catch, pero antes de que se ejecute dicha instrucción return. En este caso, la instrucción return del bloque finally se ejecuta before que la instrucción return inicial, lo que da lugar a un valor devuelto diferente.

Ejemplos

Descripción

En el siguiente ejemplo, se produce un error y se muestran el mensaje, el código y el nombre del error.

Código

try
{
    var arr = new Array(-1);
}
catch(e)
{
    print ("Error Message: " + e.message);
    print ("Error Code: " + (e.number & 0xFFFF))
    print ("Error Name: " + e.name);
}

// Output:
//  Error Message: Array length must be zero or a positive integer
//  Error Code: 5029
//  Error Name: RangeError

Descripción

El siguiente ejemplo muestra cómo funciona el control de excepciones en JScript.

Código

try
    {
    print("Outer try is running");
 
    try
        {
        print("Nested try is running");
        throw new Error(301, "an error");
        }
    catch(e)
        {
        print("Nested catch caught " + e.message);
        throw e;
        }
    finally
        {
        print("Nested finally is running");
        }   
    }
catch(e)
    {
    print("Outer catch caught " + e.message);
    }
finally
    {
    print("Outer finally is running");
    }

// Output:
//  Outer try is running
//  Nested try is running
//  Nested catch caught an error
//  Nested finally is running
//  Outer catch caught an error
//  Outer finally is running

Requisitos

Versión 5

Vea también

Referencia

throw (Instrucción)

Error (Objeto)