Implementa el control de errores para JScript.
try { instruccionesTry} catch(excepción){ instruccionesCatch} finally { instruccionesFinally}
La instrucción try...catch…finally proporciona una manera de controlar algunos o todos los errores posibles que pueden ocurrir en un bloque dado de código, mientras todavía se ejecuta el código. Si ocurren errores que el programador no controló, JScript simplemente proporciona su mensaje de error normal a un usuario, como si no hubiera control de errores.
El argumento instruccionesTry contiene código donde puede ocurrir un error, mientras instruccionesCatch contiene el código para controlar cualquier error que ocurra. Si ocurre un error en instruccionesTry, el control de programas se pasa a instruccionesCatch para su disposición. El valor inicial de excepción es el valor del error que ocurrió en instruccionesTry. Si no se produce ningún error, instruccionesCatch nunca se ejecuta.
Si el error no se puede controlar en las instruccionesCatch asociadas con instruccionesTry donde ocurrió el error, utilice la instrucción throw para propagar, o volver a producir, el error a un controlador de errores de nivel superior.
Después de ejecutar todas las instrucciones de instruccionesTry y no controlar ningún error en instruccionesCatch, se ejecutan las instrucciones de instruccionesFinally incondicionalmente.
Tenga en cuenta que el código dentro de instruccionesFinally se ejecuta incluso si ocurre una instrucción return dentro de los bloques try o catch, o si el bloque catch vuelve a lanzar el error. Se garantiza que las instruccionesFinally siempre se ejecutan, a no ser que se produzca un error no controlado, (por ejemplo, si se produce un error en tiempo de ejecución dentro del bloque catch).
El siguiente ejemplo muestra cómo funciona el control de excepciones en JScript:
try { print("Ejecutando bloque try externo..."); try { print("Ejecutando bloque try anidado..."); throw "Mi error"; } catch(e) { print("Bloque anidado detectó el error: " + e); throw e + " vuelto a lanzar"; } finally { print("Ejecutando bloque finally anidado..."); } } catch(e) { print("Bloque externo detectó error: " + e); } finally { print("Ejecutando bloque finally externo"); } // Cambie esto en Windows Script Host por WScript.Echo(s) function print(s){ document.write(s); }
Esto produce la siguiente salida:
Ejecutando bloque try externo... Ejecutando bloque try anidado... Bloque anidado detectó el error: Mi error Ejecutando bloque finally anidado... Bloque externo detectó el error: Mi error vuelto a lanzar Ejecutando bloque finally externo...
Ayuda de Javascript y Vbscript para Javascripts.astalaweb.com. |