try...catch...finally (Instrucción)
Actualización: noviembre 2007
Implementa el control de errores para JScript.
try {
[tryStatements]
} catch(exception) {
[catchStatements]
} finally {
[finallyStatements]}
Argumentos
tryStatements
Opcional. Instrucciones donde puede producirse un error.exception
Requerido. 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
Hay que tener en cuenta que el código incluido en finallyStatements se ejecuta incluso aunque haya una instrucción return dentro de los bloques try o catch, o si el bloque catch produce un error. La ejecución de finallyStatements siempre está garantizada.
Ejemplo
El siguiente ejemplo muestra cómo funciona el control de excepciones en JScript:
try {
print("Outer try running...");
try {
print("Nested try running...");
throw "an error";
} catch(e) {
print("Nested catch caught " + e);
throw e + " re-thrown";
} finally {
print("Nested finally is running...");
}
} catch(e) {
print("Outer catch caught " + e);
} finally {
print("Outer finally running");
}
Esto produce el siguiente resultado:
Outer try running..
Nested try running...
Nested catch caught an error
Nested finally is running...
Outer catch caught an error re-thrown
Outer finally running