Manejo de Errores en
Javascript
Leonel Morales Díaz
Ingeniería Simple
[email protected]
Copyright 2008 by Leonel Morales Díaz – Ingeniería Simple.
Derechos reservados
Disponible en: http://www.ingenieriasimple.com/introprogra
Excepciones
Condiciones excepcionales





Una división entre cero
Uso inválido de nulo
Archivo inexistente
Ocurre antes que el error
Error es no manejar la condición
excepcional
Excepción
División por cero
Definición de arreglo con subíndice
negativo
Parámetro incorrecto
Error en uso de “this“
Archivo inexistente
Ejemplo
Pedir al usuario que ingrese ancho y
alto de un arreglo
Estructura try ... catch ...
Si se piensa que ocurrirá una
excepción:



try { Instrucciones sospechosas }
catch (Excepción) { Instrucciones de
manejo de la excepción }
finally { Instrucciones que se ejecutan en
todo caso }
 Opcional
Primera Aproximación
function Procesar() {
var Contenido = "<Table Border=1 BackGround='" +
document.getElementsByName("Imagen")(0).value + "'>";
var ElAlto = parseInt(document.getElementsByName("Alto")(0).value);
var ElAncho = parseInt(document.getElementsByName("Ancho")(0).value);
try { var Celdas = new Array(ElAlto) } catch (e) { window.alert(e.description); }
for (var i=0;i<ElAlto;i++) {
Contenido += "<TR>";
Celdas[i] = new Array(ElAncho);
for (var j=0;j<ElAncho;j++) {
Celdas[i][j] = "<TD Align=Right>" + (Math.round(Math.random()*100*100)/100) +
"</TD>";
Contenido += Celdas[i][j];
}
Contenido += "</TR>";
}
Contenido += "</Table>";
document.getElementById("EspacioTabla").innerHTML = Contenido;
}
ej078.html
Observar
try { var Celdas = new Array(ElAlto) }
catch (e) { window.alert(e.description); }
for (var i=0;i<ElAlto;i++) {
Contenido += "<TR>";
Celdas[i] = new Array(ElAncho);
for (var j=0;j<ElAncho;j++) {
Segunda Aproximación
try puede abarcar varias instrucciones
try {
var Celdas = new Array(ElAlto);
for (var i=0;i<ElAlto;i++) {
Contenido += "<TR>";
Celdas[i] = new Array(ElAncho);
for (var j=0;j<ElAncho;j++) {
Celdas[i][j] = "<TD Align=Right>" + (Math.round(Math.random()*100*100)/100)
+ "</TD>";
Contenido += Celdas[i][j];
}
Contenido += "</TR>";
}
} catch (e) { window.alert(e.description); }
ej079.html
Otro Ejemplo
Variable no definida
<HTML>
<Body>
<Script Language=“javascript”>
try {
var x = y;
} catch (e) {
document.write(“ocurrió el error: “ + e.number + “ – “ +
e.description + “<BR>”);
} finally {
document.write(“pero el programa terminó de todos modos.”);
}
</Script>
</Body>
ej080.html
</HTML>
Problema
¿Cuál es el error equivalente en
VBScript?
Debugging
Proceso de eliminación de errores
Principalmente errores lógicos

Los errores de léxico, sintáxis y semántica
suelen ser indicados por el software
Los resultados son incoherentes
Se presentan situaciones inesperadas

Con resultados impredecibles
Debugging - Trazas
Traza del programa:


Ir mostrando en consola valores de
variables
Trazar cambios de valores
Debugging – Aserción
Mensajes indicativos de control de flujo
Dicen por donde va el programa

Si pasó por determinadas instrucciones
Usualmente con MsgBox
Ejercicio
“Debuggear” los problemas en
ej081.html
ej082.html
Enviar reporte a:
[email protected]
Descargar

Manejo de Errores en Javascript