¿Cómo agregar nueva información y volver a generar errores en funciones anidadas en JavaScript?

En este artículo, veremos cómo podemos agregar nueva información y volver a generar errores en funciones anidadas en JavaScript con la ayuda de ciertas explicaciones teóricas y comprenderlas a través de las ilustraciones.

Este artículo está dividido en 2 secciones, es decir, en la primera sección, comprenderemos cómo agregar la nueva información al generar un error, además de saber cómo volver a generar un error después del error inicial. En la segunda sección, veremos cómo volver a generar el error en una función anidada con información adjunta.

¿Cómo agregar nueva información al arrojar un error?

Para agregar nueva información junto con el mensaje de error arrojado dentro de la instrucción throw – , se usará el operador de concatenación («+») que ayuda a concatenar el mensaje de error junto con la información adjunta.

Sintaxis : con la ayuda de la siguiente sintaxis, podemos agregar información nueva al generar un error en JavaScript:

throw new Error (error_message + "appended_information_in_string_format");

Comprendamos la sintaxis anterior con la ayuda de un ejemplo que se describe a continuación.

Ejemplo 1: en este ejemplo, simplemente crearemos un bloque try/catch y dentro del bloque try, arrojaremos un error junto con la información adjunta, que quedará atrapada dentro del propio bloque catch .

Javascript

<script>
    try {
        throw new Error("Please try again later!!.. "
            + "Site not working..!!");
    } catch (error) {
        console.log(error.message);
    }
</script>

Producción:

Please try again later!!.. Site not working..!!

¿Cómo volver a lanzar un error después de un error inicialmente lanzado?

Para volver a generar un error, JavaScript no proporciona ninguna palabra clave especial para el mismo. Para iniciar este proceso, debemos tener que arrojar un error dentro del propio bloque catch , de modo que después de capturar el error anterior en sí mismo, podría arrojar un error que luego se almacenará en caché utilizando otro bloque catch .

Sintaxis :

try {
    throw new error (error_message);
}
catch (error){
    // do something with the error message itself
    // Here, we will again throw an error in
    // catch block itself
    throw new Error (new_error_message) 
}

Ejemplo 2: En este ejemplo, usaremos nuevamente un bloque try/catch como lo hemos usado en el ejemplo de la sección anterior. Aquí, en el bloque catch, volveremos a lanzar un error que atraparemos en un bloque catch diferente . Además, envolveremos el bloque try/catch completo dentro del propio bloque try (haciendo que el bloque try/catch inicial sea un bloque anidado) y pondremos un bloque catch después de este bloque try

Javascript

<script>
    try {
        try {
            throw new Error("Error occurred...!!");
        } catch (error) {
            console.log(error.message);
            throw new Error("Please try again later..!!");
        }
    } catch (error) {
        console.log(error.message);
    }
</script>

Producción:

Error occurred...!!
Please try again later..!!

Ahora, entenderemos cómo agregar nueva información y volver a generar errores en las propias funciones anidadas. Aquí, crearemos dos funciones que arrojarán dos errores diferentes respectivamente, y estos errores se detectarán más tarde en otras funciones. Después de crear estas dos funciones, necesitamos crear la tercera función y, con la ayuda de esta función, detectaremos todos los errores generados por las otras dos funciones. Además, la tercera función arrojará su propio mensaje de error seguido de la información adjunta, que se iniciará con la ayuda de las sintaxis que se muestran en las secciones anteriores.

Más tarde, después de capturar esos errores en el bloque catch , arrojaremos un error en el bloque catch, que se mostrará dos veces en la salida. Además, envolveremos ese bloque try/catch que se creó dentro de la tercera función dentro de otro bloque de prueba individual, y luego envolveremos ese bloque try con el bloque catch que en realidad se coloca justo después de él. 

Los pasos anteriores se realizan para garantizar que ambos errores sean generados por 2 funciones diferentes que podrían almacenarse fácilmente en caché dentro del bloque catch, junto con el error de la tercera función con información adjunta. Luego, haremos coincidir un bloque try/catch, después de todas las tareas anteriores, y dentro del bloque try , llamaremos a la tercera función mientras pasamos otras funciones una tras otra como un parámetro en la tercera función. Luego, al final, detectaremos todos los errores uno tras otro y mostraremos esos dos errores en la consola.

Ejemplo: Este ejemplo ilustra volver a generar el error en una función anidada con información adjunta.

Javascript

<script>
    let firstErrorFunction = () => {
        throw new Error("Please try again later!!..");
    };
 
    let secondErrorFunction = () => {
        throw new Error("Something went wrong!!..");
    };
 
    let thirdErrorFunction = (func) => {
        try {
            try {
                func();
            } catch (error) {
                console.log(error.message);
                throw new Error("Error 404!!..."
                    + "File not found..!!");
            }
        } catch (error) {
            console.log(error.message);
        }
    };
 
    try {
        thirdErrorFunction(firstErrorFunction);
        thirdErrorFunction(secondErrorFunction);
    } catch (error) {
        console.log(error.message);
    }
</script>

Producción:

Please try again later!!..
Error 404!!...File not found..!!
Something went wrong!!..
Error 404!!...File not found..!!

Publicación traducida automáticamente

Artículo escrito por amansingla y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *