¿Es posible volver a intentar un bloque try-catch si se produce un error en JavaScript?

En este artículo, intentaremos comprender cómo reintentamos un bloque try/catch si se produce un error en particular en JavaScript con la ayuda de ejemplos teóricos y de codificación.

Primero echemos un vistazo al ejemplo ilustrado a continuación que nos ayudará a comprender qué sucederá si no se vuelve a intentar un bloque de prueba/captura que genera un error si no se cumple una determinada condición de resultado.

Ejemplo 1: 

  • En este ejemplo, crearemos una función y dentro de esa función, crearemos una variable que almacenará un número generado aleatoriamente.
  • Este número generado aleatoriamente se calculará utilizando un método proporcionado en JavaScript en la clase Math que se conoce como método Math.random() .
  • Después de almacenar el número aleatorio, multiplicaremos el número por 10 y luego obtendremos el valor mínimo de todas las cosas calculadas usando otro método llamado método Math.floor() .
  • Después de hacer todo esto, verificaremos si ese número coincide con nuestro número pasado y, en consecuencia, mostraremos el resultado o arrojaremos el error y luego lo detectaremos.

Javascript

<script>
    let checkNumber = (num) => {
        let random_number = Math.floor(Math.random() * 10);
 
        if (random_number === num) {
            return `Yes number ${random_number}
                matches with the passed in number ${num}`;
        } else {
            throw new Error("Number doesn't matches");
        }
    };
 
    try {
        console.log(checkNumber(6));
    } catch (error) {
        console.log(error.message);
    }
</script>

Producción:

Number doesn't matches

Como hemos visto en la salida, así como en el fragmento de código, la mayoría de las veces arroja una declaración de error y, por lo tanto, la mayoría de las veces nuestro número pasado no coincide con el número generado aleatoriamente. Echemos un vistazo al ejemplo ilustrado a continuación que creará un bloque de intento/captura de reintento hasta que el número pasado coincida con el número generado aleatoriamente dentro de esa función.

Ejemplo 2: 

  • En este ejemplo, crearemos otra función y tomaremos en consideración la función que hemos creado en el ejemplo anterior.
  • Dentro de eso, otra función bajo el bucle while crearemos un bloque try/catch, y dentro de ese bloque try devolverá nuestra primera función para que, si el número no coincide, podamos detectar el error arrojado por la primera función dentro de ese catch. bloquear.
  •  El resultado seguramente aquí será positivo que indicará que «sí, el número coincide con el número pasado», pero aquí nuestro tamaño de pila de llamadas aumentará ya que el error varias veces se almacenará en caché como número, excepto que una vez se rechaza siempre. .

Javascript

<script>
    let checkNumber = (num) => {
        let random_number = Math.floor(Math.random() * 10);
 
        if (random_number === num) {
            return `Yes number ${random_number} matches
                with the passed in number ${num}`;
        } else {
            throw new Error("Number doesn't matches");
        }
    };
 
    let checkAgainNumber = () => {
        while (true) {
            try {
                return checkNumber(7);
            } catch (error) { }
        }
    };
 
    console.log(checkAgainNumber());
</script>

Producción:

Yes number 7 matches with the passed in number 7

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 *