domingo, 20 de septiembre de 2015

JavaScript - Errores y Manejo de excepciones

Hay tres tipos de errores en la programación: (a) los errores de sintaxis, (b) los errores de ejecución, y (c) los errores lógicos.

Errores de sintaxis

Los errores de sintaxis, también llamados errores de análisis, se producen en tiempo de compilación en lenguajes de programación tradicionales y, al interpretar el tiempo en JavaScript.
Por ejemplo, la siguiente línea provoca un error de sintaxis porque falta un paréntesis de cierre.
<script type="text/javascript">
<!--
window
.print(;
//-->
</script>
Cuando se produce un error de sintaxis en JavaScript, sólo el código contenido dentro de la misma rosca que se ve afectado el error de sintaxis y el resto del código en otros hilos es ejecutado asumir nada en ellos depende del código que contiene el error.

Errores de ejecución

Errores de ejecución, también llamadas excepciones, se producen durante la ejecución (después de la compilación / interpretación).
Por ejemplo, la siguiente línea provoca un error de ejecución porque aquí la sintaxis es correcta, pero en tiempo de ejecución, que está tratando de llamar a un método que no existe.
<script type="text/javascript">
<!--
window
.printme();
//-->
</script>
Las excepciones también afectan el hilo en el que ocurren, permitiendo que otros hilos JavaScript para continuar la ejecución normal.

Los errores lógicos

Errores lógicos pueden ser el tipo más difícil de errores de localizar. Estos errores no son el resultado de un error de sintaxis o de tiempo de ejecución. En su lugar, se producen cuando se comete un error en la lógica que impulsa su guión y que no obtienen el resultado que esperaba.
No se puede atrapar esos errores, porque depende de sus necesidades de negocio de qué tipo de lógica que desea poner en su programa.

El try ... catch ... finally

Las últimas versiones de JavaScript añaden capacidades de manejo de excepciones.JavaScript implementa el try ... catch ... finally construir, así como el lanzamiento del operador para manejar excepciones.
Puedes coger el programador generado y tiempo de ejecución excepciones, pero no se puede coger errores de sintaxis de JavaScript.
Aquí está el try ... catch ... finally bloque de sintaxis -
<script type="text/javascript">
<!--
try {
// Code to run
[break;]
}

catch ( e ) {
// Code to run if an exception occurs
[break;]
}

[ finally {
// Code that is always executed regardless of
// an exception occurring
}]
//-->
</script>
El intento de bloque debe ser seguido por cualquiera de exactamente un retén bloque o de un fin de bloque (o uno de los dos). Cuando se produce una excepción en elintento de bloque, la excepción se coloca en dirección y la captura se ejecuta el bloque.La opción por último bloque se ejecuta sin condiciones después de try / catch.

Ejemplos

Aquí está un ejemplo en el que estamos tratando de llamar a una función no existente que a su vez está criando una excepción. Veamos cómo se comporta sin tratar ... catch -
<html>
<head>

<script type="text/javascript">
<!--
function myFunc()
{
var a = 100;
alert
("Value of variable a is : " + a );
}
//-->
</script>

</head>

<body>
<p>Click the following to see the result:</p>

<form>
<input type="button" value="Click Me" onclick="myFunc();" />
</form>

</body>
</html>

Salida


Ahora vamos a tratar de atrapar esta excepción utilizando try ... catch y mostrar un mensaje fácil de usar. También puede suprimir este mensaje, si desea ocultar este error de un usuario.
<html>

<head>

<script type="text/javascript">
<!--
function myFunc()
{
var a = 100;
try {
alert
("Value of variable a is : " + a );
}

catch ( e ) {
alert
("Error: " + e.description );
}
}
//-->
</script>

</head>

<body>
<p>Click the following to see the result:</p>

<form>
<input type="button" value="Click Me" onclick="myFunc();" />
</form>

</body>
</html>

Salida


Usted puede utilizar por último bloque que siempre se ejecutará incondicionalmente después del try / catch. He aquí un ejemplo.
<html>

<head>

<script type="text/javascript">
<!--
function myFunc()
{
var a = 100;

try {
alert
("Value of variable a is : " + a );
}

catch ( e ) {
alert
("Error: " + e.description );
}

finally
{
alert
("Finally block will always execute!" );
}
}
//-->
</script>

</head>

<body>
<p>Click the following to see the result:</p>

<form>
<input type="button" value="Click Me" onclick="myFunc();" />
</form>

</body>
</html>

Salida


La Declaración de tiro

Usted puede usar tiro declaración a elevar sus excepciones incorporadas o sus excepciones personalizadas. Más tarde, estas excepciones pueden ser capturados y se puede tomar una acción apropiada.

Ejemplo

El siguiente ejemplo muestra cómo utilizar un tiro comunicado.
<html>

<head>

<script type="text/javascript">
<!--
function myFunc()
{
var a = 100;
var b = 0;

try{
if ( b == 0 ){
throw( "Divide by zero error." );
}

else
{
var c = a / b;
}
}

catch ( e ) {
alert
("Error: " + e );
}
}
//-->
</script>

</head>

<body>
<p>Click the following to see the result:</p>

<form>
<input type="button" value="Click Me" onclick="myFunc();" />
</form>

</body>
</html>

Salida


Usted puede lanzar una excepción en una función usando una cadena, entero, booleano, o un objeto y entonces usted puede capturar esa excepción, ya sea en la misma función como lo hicimos anteriormente, o en otra función utilizando un try ... catch bloque.

El onerror (Método)

El onerror controlador de eventos fue la primera función para facilitar el manejo de errores en JavaScript. El error de evento se activa en el objeto ventana cada vez que se produce una excepción en la página.
<html>

<head>

<script type="text/javascript">
<!--
window
.onerror = function () {
alert
("An error occurred.");
}
//-->
</script>

</head>

<body>
<p>Click the following to see the result:</p>

<form>
<input type="button" value="Click Me" onclick="myFunc();" />
</form>

</body>
</html>

Salida


El onerror controlador de eventos proporciona tres piezas de información para identificar la naturaleza exacta del error -
  • Mensaje de error - El mismo mensaje que el navegador mostraría el error dado
  • URL - El archivo en el que se produjo el error
  • Número de línea - El número de línea en la URL dada que provocó el error
Aquí está el ejemplo para mostrar cómo extraer esta información.

Ejemplo

<html>

<head>

<script type="text/javascript">
<!--
window
.onerror = function (msg, url, line) {
alert
("Message : " + msg );
alert
("url : " + url );
alert
("Line number : " + line );
}
//-->
</script>

</head>

<body>
<p>Click the following to see the result:</p>

<form>
<input type="button" value="Click Me" onclick="myFunc();" />
</form>

</body>
</html>

Salida


Se puede visualizar la información extraída de cualquier manera que usted piensa que es mejor.
Puede utilizar un onerror método, como se muestra a continuación, para mostrar un mensaje de error en caso de que haya algún problema en la carga de una imagen.
<img src="myimage.gif" onerror="alert('An error occurred loading the image.')" />
Puede utilizar onerror con muchas etiquetas HTML para mostrar los mensajes apropiados en caso de errores.

No hay comentarios:

Publicar un comentario