004. Manejo de errores en Javascript

En este capítulo vamos a ver el manejo de errores en Javascript. Para el manejo de errores, Javascript tiene un mecanismo parecido a un if else, es denominado try catch finally. Es una estructura que nos permite evaluar ciertos fragmentos de código y cuando haya algún mensaje de error, o más bien, cuando nuestro código genere algún lanzamiento de error, entonces se captura en la parte del catch, y de esta manera es una forma de ir gestionando el manejo de errores.

La sintaxis es la siguiente.

        try {
            console.log("En el try se agrega el código a evaluar")
        } catch (error) {
            console.log("Catch captura cualquier error surgido o lanzado en el try")
        } finally {
            console.log("El bloque finally se ejecutará siempre al final de un bloque try catch")
        }

Si en el código del try se ejecuta algún error, quien va a capturar ese error va a ser la parte del catch. Finalmente finally se ejecutará siempre al final de un bloque try catch.

Vamos a hacer un segundo ejm en el cual creamos una variable que no se ha declarado para que dé un error aposta en el try.

Ejm

        try {
            noExiste;
            console.log("Mensaje que aparece si todo va bien");
        } catch (error) {
            console.log("Esto aparecerá si dá error");
        } finally {
            console.log("Sí o sí esto aparecerá siempre");
        }

Lo interesante es mandar a la consola imprimir ese error para ver como se presenta, le añadimos una línea a nuestro catch.

Ejm

        try {
            noExiste;
            console.log("Mensaje que aparece si todo va bien");
        } catch (error) {
            console.log("Esto aparecerá si dá error");
            console.log(error);
        } finally {
            console.log("Sí o sí esto aparecerá siempre");
        }

A veces podemos tener la necesidad, a lo mejor de lanzar un error aposta, por ejm, estamos pidiendo información de un formulario, y entonces forzosamente necesitamos que cierta información llegue como datos numéricos, y llegan como texto, entonces podríamos lanzar un error personalizado que dijese que esperábamos números y están enviando letras. Por lo tanto se utiliza para arrojar errores que estén dentro de la lógica de nuestro programa, no necesariamente un error de sintaxis. Eso es lo que hacen mucho por ejm los desarrolladores de APIs, cuando no cumplimos con mandar la información correcta hacia una API para ejecutar cierto proceso, va a mandar un mensaje de error de por qué no se está ejecutando. En ese sentido un try catch nos puede servir.

En el momento de que el try catch detecta el error, imprimiría lo anterior, pero lo posterior al error ya no lo imprime, es decir, detiene la ejecución del try en el momento en que detecta el error, y lanza la ejecución del catch, es como si fuera un return.

Personalizar nuestros propios mensajes

Veámoslo con un ejm.

Ejm

        try {
            let numero = "y";
            if(isNaN(numero)) {
                throw new Error("El caracter introducido no es un número");
            }

            console.log(numero * numero);
           
        } catch (error) {
            console.log("Se produjo el siguiente error. " + error);
        }

Como vemos, estamos enviando un mensaje de error totalmente personalizado. Como podemos observar, con este tipo de estructura de control podemos trabajar de una manera más ordenada e incluso mejor evaluada, ya que estamos pensando en donde podemos tener ciertos errores (no necesariamente de sintaxis).

Scroll al inicio