Declaración de tolerancia a fallas de js, incluso si ocurren errores de js, no se generará ningún error (para evitar un símbolo de triángulo amarillo en la esquina inferior derecha del navegador; de lo contrario, la experiencia del usuario será deficiente)
Copie el código de código de la siguiente manera:
ventana.onerror=función(){regresar verdadero;}
Lo siguiente es para obtener información de excepción js para facilitar a los desarrolladores encontrar problemas.
1, intenta... atrapar...
Copie el código de código de la siguiente manera:
<tipo de script="texto/javascript">
vartext=""
mensaje de función()
{
intentar
{
adddlert ("¡Bienvenido invitado!")
}
atrapar (errar)
{
txt="Hay un error en esta página./n/n"
txt+="Haga clic en "Aceptar" para continuar viendo esta página,/n"
txt+="Haga clic en "Cancelar" para regresar a la página de inicio./n/n"
si(!confirmar(txt))
{
documento.ubicación.href="/index.html"
}
}
}
</script>
2, tirar
Copie el código de código de la siguiente manera:
<tipo de script="texto/javascript">
var x=prompt("Ingrese un número entre 0 y 10:","")
intentar
{
si(x>10)
tirar "Err1"
de lo contrario si(x<0)
lanza "Err2"
de lo contrario si(esNaN(x))
lanza "Err3"
}
atrapar (er)
{
si(er=="Err1")
alert("¡Error! ¡El valor es demasiado grande!")
si(er == "Err2")
alert("¡Error! ¡El valor es demasiado pequeño!")
si(er == "Err3")
alert("¡Error! ¡El valor no es un número!")
}
</script>
3, error:
Copie el código de código de la siguiente manera:
<tipo de script="texto/javascript">
onerror=manejarErr
vartext=""
función handleErr(mensaje,url,l)
{
txt="Hay un error en esta página./n/n"
txt+="Error:" + mensaje + "/n"
txt+="URL: " + URL + "/n"
txt+="Línea:" + l + "/n/n"
txt+="Haga clic en "Aceptar" para continuar./n/n"
alerta (texto)
devolver verdadero
}
mensaje de función()
{
adddlert ("¡Bienvenido invitado!")
}
</script>
Manejo de excepciones en js
Puede utilizar try...catch en JavaScript para el manejo de excepciones. Por ejemplo:
prueba { foo.bar();} catch (e) { alerta(e.name + ": " + e.message);}
En la actualidad, las excepciones del sistema que podemos recibir incluyen principalmente los siguientes 6 tipos:
EvalError: aparece cuando ocurre un error al ejecutar código en eval()
RangeError: aparece cuando una variable numérica o un parámetro está fuera de su rango válido
ReferenceError: aparece al eliminar la referencia a una referencia no válida
SyntaxError: aparece cuando se produce un error de sintaxis al analizar el código en eval()
TypeError: aparece cuando una variable o parámetro no es un tipo válido
URIError: aparece cuando a encodeURI() o decodeURI() se les pasan parámetros no válidos
Los seis objetos de excepción anteriores heredan del objeto Error. Todos admiten los dos métodos de construcción siguientes:
nuevo Error();nuevo Error("Información de excepción");
El método para generar manualmente una excepción es el siguiente:
Copie el código de código de la siguiente manera:
intentar {
lanzar un nuevo error ("¡Ups!");}
atrapar (e) {
alerta(e.nombre + ": " + e.mensaje);}
Si desea determinar el tipo de información de excepción, puede hacerlo en catch:
Copie el código de código de la siguiente manera:
intentar {
foo.bar();
} atrapar (e) {
si (e instancia de EvalError) {
alerta(e.nombre + ":" + e.mensaje);
} else if (e instancia de RangeError) {
alerta(e.nombre + ": " + e.mensaje }
//etc
}
El error tiene las siguientes propiedades principales:
descripción: descripción del error (solo disponible en IE).
fileName: el nombre del archivo del error (solo disponible en Mozilla).
lineNumber: El número de líneas erróneas (solo disponible en Mozilla).
mensaje: mensaje de error (igual que la descripción en IE)
nombre: tipo de error.
número: código de error (solo disponible en IE).
pila: información de pila de error como Stack Trace en Java (solo disponible en Mozilla).
Por lo tanto, para comprender mejor el mensaje de error, podemos cambiar la parte catch al siguiente formulario:
Copie el código de código de la siguiente manera:
intentar {
foo.bar();
} captura(e) {
si (tipo de navegador! = BROWSER_IE) {
alert("nombre: " + e.name + "mensaje: " + e.message + "lineNumber: " + e.lineNumber + "fileName: " + e.fileName + "stack: " + e.stack);
} demás {
alert("nombre: " + e.name + "errorNumber: " + (e.number & 0xFFFF) + "mensaje: " + e.message "); } } "
El comando throw en JavaScript en realidad puede lanzar cualquier objeto y podemos recibir este objeto en catch. Por ejemplo:
Copie el código de código de la siguiente manera:
intentar {
throw new Date(); // Lanza el objeto de hora actual } catch (e) { alert(e.toLocaleString());
}