uno. Malestar
1. Error de sintaxis
También conocido como errores de análisis, ocurren al compilarse en lenguajes de programación tradicionales, y se producen en JavaScript al interpretar. Estos errores son causados directamente por caracteres inesperados en el código, y luego no se pueden compilar/interpretar directamente. Por ejemplo, una línea de código carece del soporte de cierre, lo que resulta en un error de sintaxis. Cuando se produce un error de sintaxis, el código no se puede ejecutar. En JavaScript, solo el código en el mismo hilo se verá afectado por los errores de sintaxis. El código en otros hilos y en otros archivos referenciados externamente puede continuar ejecutándose si no depende del código que contenga el error.
2. Error de tiempo de ejecución
También conocido como excepción (excepción, después de la compilación/intérprete). En este punto, el problema no está en la sintaxis del código, pero en algunos casos una operación intentó completar es ilegal. p.ej.
Window.openMyFile ();
Debido a que el método OpenMyFile () no existe, el navegador devolverá una excepción. Las excepciones solo afectan el hilo que ocurre, y otros hilos de JavaScript pueden continuar ejecutándose normalmente.
dos. Errores de manejo
1. Función de manejo de eventos OneError
Es el primer mecanismo para ayudar a JavaScript a manejar errores. Cuando se produce una excepción en la página, el evento de error se dispara en el objeto de la ventana. P.ej.
La copia del código es la siguiente:
<html>
<Evista>
<title> OnError Ejemplo </title>
<script type = "text/javaScript">
Window.oNerror = function () {
alerta ("¡Ocurrió un error!");
}
</script>
</ablo>
<Body onload = "function1 ()">
</body>
</html>
En el código anterior, intentando llamar a una función inexistente mientras la página está cargada, se planteará una excepción. Aparece un mensaje de error de que "Error ocurrió". Sin embargo, también se muestra el mensaje de error del navegador. ¿Cómo ocultarlo en el navegador? Solo devuelve un método verdadero.
La copia del código es la siguiente:
<script type = "text/javaScript">
Window.oNerror = function () {
alerta ("¡Ocurrió un error!");
devolver verdadero;
}
</script>
1) Eliminar el mensaje de error
El controlador OnError proporciona tres tipos de información para determinar la naturaleza exacta del error:
i) Mensaje de error: para un error dado, el navegador mostrará la misma información;
ii) URL, en la que se produjo un archivo un error;
Número de línea: el número de línea donde ocurrió el error en la URL dada.
Consulte el siguiente ejemplo para los métodos de acceso:
La copia del código es la siguiente:
<script type = "text/javaScript">
Window.oNerror = function (smesage, surl, sline) {
alerta ("Se produjo un error!/n" + smesage + "/nurl:" + surl + "/nine number:" + sline);
devolver verdadero;
}
</script>
2) Error de carga de imágenes
El objeto de la ventana no es el único objeto que admite la función de manejo de eventos OnError, también proporciona soporte para objetos de imagen. Cuando una imagen no se puede cargar correctamente debido a la no existencia del archivo, el evento de error se activa en la imagen. Veamos un ejemplo:
<img src = ”amigo.jpg” oneError = ”alerta ('Se produjo un error al cargar la imagen')"/>
El ejemplo anterior asigna directamente la función del controlador de eventos OnError en HTML. Por supuesto, también puede asignar funciones de procesamiento de eventos a través de scripts. Antes de establecer las características SRC de la imagen, debe esperar a que la página se cargue por completo. El código es el siguiente:
La copia del código es la siguiente:
<html>
<Evista>
<title> prueba de error de imagen </title>
<script type = "text/javaScript">
function handLElOAd () {
document.Images [0] .onerror = function () {
alerta ("Se produjo un error al cargar la imagen!");
};
document.Images [0] .src = "amigo.jpg";
}
</script>
</ablo>
<Body Onload = "HandLeload ()">
<img/>
<Body>
</html>
Nota: A diferencia de la función del controlador de eventos OnError del objeto de la ventana, el evento OnError de la imagen tiene cualquier parámetros de información adicionales.
3) manejar errores de sintaxis
OnError también puede manejar errores de sintaxis. Pero se debe tener en cuenta una cosa que el controlador de eventos debe ser el primer código que aparece en la página, porque si se produce un error de sintaxis antes de configurar el controlador de eventos, el controlador de eventos será inútil.
Nota: Los errores de sintaxis detendrán completamente la ejecución del código.
Nota: El principal problema con el uso de OnError Event Handler es que es parte de la lista de materiales, por lo que ningún estándar puede controlar su comportamiento. Por lo tanto, diferentes navegadores usan este evento para manejar significativamente los errores. p.ej. Cuando se produce un evento de error en IE, el código normal continuará ejecutándose, se conservan todas las variables y datos, y se puede acceder a través de la función del controlador de eventos OnError. En Mozilla, la ejecución del código normal terminará, y todas las variables y datos antes de que ocurra el error se destruyan.
2. Prueba ... Declaración de captura
ECMPScript Tercera edición presenta la declaración de try ... Catch. P.ej.
La copia del código es la siguiente:
intentar {
Window.openFile1 ();
alerta ("Método OpenFile1 llamado con éxito");
} catch (excepción) {
alerta ("¡Ocurrió la excepción!");
} finalmente {
alerta ("Prueba ... prueba de prueba!");
}
A diferencia de Java, el estándar de ECMAScript solo puede tener una declaración de captura en la declaración de try ... Catch, porque JavaScript es un lenguaje de tipo débil y no puede especificar el tipo específico de excepción en la cláusula de captura. Independientemente del tipo de error, se maneja por la misma declaración de captura. Sin embargo, Mozilla lo ha expandido y puede agregar múltiples declaraciones de captura, que no se recomienda usar de esta manera.
Finalmente se usa para incluir el código para ejecutarse independientemente de si se produce una excepción, lo cual es útil para cerrar enlaces abiertos y liberar recursos.
1) intento anidado ... Declaración de captura
Utilizado para lidiar con problemas de error en las cláusulas de captura, echemos un vistazo a un ejemplo, el código es el siguiente:
La copia del código es la siguiente:
intentar {
eval ("a ++ b");
} Catch (oException) {
alerta ("¡Ocurrió un error!");
intentar {
var aerror = nueva matriz (10000000000000000000000000000000000000000000000000000000000000000000000);
} catch (excepción) {
alerta ("¡Se produjo un error en la cláusula de captura!");
}
} finalmente{
alerta ("completado")
}
2) Objeto de error
Cuando ocurre un error, JavaScript tiene una clase de base de error para lanzar. Tiene dos características:
i) Nombre: una cadena que representa el tipo incorrecto
ii) Mensaje - Mensaje de error real.
El nombre del objeto de error corresponde a su clase y puede ser uno de los siguientes valores:
Evalterror: el error ocurre en la función eval ();
RangeError: el valor numérico excede el rango que JavaScript puede representar;
ReferenceError: se utilizó referencia ilegal;
SyntaxError: se produjo un error de sintaxis en la llamada de función eval (), y el navegador informó otros errores cada vez más y no pudo procesarse a través de try ... Catch;
TypeError: el tipo de variable no es lo que se espera sea necesario;
Urierror: se produjo un error en la función Codeuri o Decodeuri.
3) Determine el tipo de error
Los siguientes dos métodos se pueden usar para determinar el tipo de error. El primer método se basa en el atributo de nombre de la excepción, como sigue:
La copia del código es la siguiente:
intentar {
eval ("a ++ b");
} Catch (oException) {
if (oexception.name = "syntaxError") {
alerta ("SyntaxError ocurrió!");
} demás {
alerta ("¡Otro error ocurrió!");
}
}
La instancia del operador se usa en el segundo, y el código es el siguiente:
La copia del código es la siguiente:
intentar {
eval ("a ++ b");
} Catch (oException) {
if (instancia de oexception de syntaxError) {
alerta ("SyntaxError ocurrió!");
} demás {
alerta ("¡Otro error ocurrió!");
}
}
4) Declaración de lanzamiento de excepción de excepción
En la tercera edición de ECMAScript, se utiliza para lanzar excepciones a propósito. El objeto de error lanzado puede ser una cadena, un número, un valor booleano o un objeto real, o un objeto de error (su constructor tiene solo una función, es decir, un mensaje de error). Eg1. arrojar un nuevo error ("¡Ocurrió un error!");
Eg2.
La copia del código es la siguiente:
función addtwonumber (a, b) {
if (argumentos.length <2) {
tirar un nuevo error ("¡Se deben pasar dos números!");
}
}
intentar {
resultado = addTWonumber (90);
} Catch (oException) {
if (instancia de oexception de syntaxError) {
alerta ("SyntaxError:" + oexception.message);
} else if (oException instanceOf error) {
alerta (oexception.message);
}
}
Lo anterior es todo el contenido descrito en este artículo. Espero que te pueda gustar.