Los últimos tutoriales de desarrollo web
 

JavaScript Errores - Throw y tratar de atrapar


El try declaración le permite probar un bloque de código de errores.

La catch declaración le permite manejar el error.

El throw declaración le permite crear errores personalizados.

La sentencia finally le permite ejecutar código, después de tratar de alcanzar, sin importar el resultado.


Han aparecido errores!

Cuando la ejecución de código JavaScript, pueden ocurrir errores diferentes.

Los errores pueden ser los errores cometidos por el programador, los errores debidos a la entrada equivocada, y otras cosas imprevisibles codificación:

Ejemplo

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
try {
    adddlert("Welcome guest!");
}
catch(err) {
    document.getElementById("demo").innerHTML = err.message;
}
</script>

</body>
</html>
Inténtalo tú mismo "

En el ejemplo anterior hemos hecho un error tipográfico en el código (en el bloque try).

La catch de bloques captura el error, y ejecuta el código para manejarlo.


JavaScript try y catch

El try declaración le permite definir un bloque de código para hacerse la prueba de errores mientras está siendo ejecutado.

La catch declaración le permite definir un bloque de código que se ejecutará, si se produce un error en el bloque try.

Las sentencias de JavaScript try y catch vienen en pares:

try {
    Block of code to try
}
catch(err) {
    Block of code to handle errors
}

JavaScript puede provocar errores

Cuando se produce un error, JavaScript normalmente parar, y generar un mensaje de error.

El término técnico para esto es: JavaScript elevará (o tirar) una excepción.


El throw Declaración

El throw declaración le permite crear un error personalizado.

Técnicamente se puede subir (tirar) una excepción.

La excepción puede ser una cadena de JavaScript, un número, un booleano o un objeto:

throw "Too big";    // throw a text
throw 500;          // throw a number

Si utiliza throw junto con try y catch , se puede controlar el flujo del programa y generar mensajes de error personalizados.


Ejemplo de entrada de validación

Este ejemplo examina de entrada. Si el valor es incorrecto, se genera una excepción (err).

La excepción (err) es capturado por la declaración de capturas y se muestra un mensaje de error personalizado:

<!DOCTYPE html>
<html>
<body>

<p>Please input a number between 5 and 10:</p>

<input id="demo" type="text">
<button type="button" onclick="myFunction()">Test Input</button>
<p id="message"></p>

<script>
function myFunction() {
    var message, x;
    message = document.getElementById("message");
    message.innerHTML = "";
    x = document.getElementById("demo").value;
    try {
        if(x == "") throw "empty";
        if(isNaN(x)) throw "not a number";
        x = Number(x);
        if(x < 5) throw "too low";
        if(x > 10) throw "too high";
    }
    catch(err) {
        message.innerHTML = "Input is " + err;
    }
}
</script>

</body>
</html>
Inténtalo tú mismo "

Validación HTML

El código anterior es sólo un ejemplo.

Los navegadores modernos a menudo se utiliza una combinación de JavaScript y una función de validación de HTML, usando las reglas de validación predefinidas definidos en los atributos HTML:

<input id="demo" type="number" min="5" max="10" step="1"

Puede leer más sobre la validación de formularios en un capítulo posterior de este tutorial.


El finally Declaración

El finally declaración le permite ejecutar código, después de try y catch , independientemente del resultado:

try {
    Block of code to try
}
catch(err) {
    Block of code to handle errors
}
finally {
    Block of code to be executed regardless of the try / catch result
}

Ejemplo

function myFunction() {
    var message, x;
    message = document.getElementById("message");
    message.innerHTML = "";
    x = document.getElementById("demo").value;
    try {
        if(x == "") throw "is empty";
        if(isNaN(x)) throw "is not a number";
        x = Number(x);
        if(x > 10) throw "is too high";
        if(x < 5) throw "is too low";
    }
    catch(err) {
        message.innerHTML = "Error: " + err + ".";
    }
    finally {
        document.getElementById("demo").value = "";
    }
}
Inténtalo tú mismo "