JavaScript prueba… captura… finalmente

los try, catch y finally los bloques se utilizan para manejar excepciones (un tipo de error). Antes de aprender sobre ellos, debe conocer los tipos de errores en la programación.

Tipos de errores

En programación, puede haber dos tipos de errores en el código:

Error de sintaxis: Error en la sintaxis. Por ejemplo, si escribes consol.log('your result');, el programa anterior arroja un error de sintaxis. la ortografía de console es un error en el código anterior.

Error de tiempo de ejecución: Este tipo de error ocurre durante la ejecución del programa. Por ejemplo,
llamar a una función no válida o una variable.

Estos errores que ocurren durante el tiempo de ejecución se llaman excepciones. Ahora, veamos cómo puede manejar estas excepciones.


Declaración de JavaScript try… catch

los try...catch La declaración se utiliza para manejar las excepciones. Su sintaxis es:

try {
    // body of try
} 
catch(error) {
    // body of catch  
}

El código principal está dentro del try bloquear. Mientras se ejecuta el try bloque, si ocurre algún error, va al catch bloquear. los catch block maneja los errores según las instrucciones catch.

Si no ocurre ningún error, el código dentro del try se ejecuta el bloque y el catch se salta el bloque.


Ejemplo 1: Mostrar variable no declarada

// program to show try...catch in a program

const numerator= 100, denominator="a";

try {
     console.log(numerator/denominator);

    // forgot to define variable a      
    console.log(a);
}
catch(error) {
    console.log('An error caught'); 
    console.log('Error message: ' + error);  
}

Producción

NaN
An error caught
Error message: ReferenceError: a is not defined

En el programa anterior, a La variable no está definida. Cuando intenta imprimir el a variable, el programa arroja un error. Ese error está atrapado en el catch bloquear.


JavaScript intente… atrape… finalmente Declaración

También puede utilizar el try...catch...finally declaración para manejar excepciones. los finally El bloque se ejecuta tanto cuando el código se ejecuta correctamente como si se produce un error.

la sintaxis de try...catch...finally bloque es:

try {
    // try_statements
} 
catch(error) {
    // catch_statements  
}
finally() {
    // codes that gets executed anyway
}

Ejemplo 2: intentar… atrapar… finalmente Ejemplo

const numerator= 100, denominator="a";

try {
     console.log(numerator/denominator);
     console.log(a);
}
catch(error) {
    console.log('An error caught'); 
    console.log('Error message: ' + error);  
}
finally {
     console.log('Finally will execute every time');
}

Producción

NaN
An error caught
Error message: ReferenceError: a is not defined
Finally will execute every time

En el programa anterior, se produce un error y ese error es capturado por el catch bloquear. los finally El bloque se ejecutará en cualquier situación (si el programa se ejecuta correctamente o si se produce un error).

Nota: Tienes que usar catch o finally declaración después try declaración. De lo contrario, el programa arrojará un error. SyntaxError no detectado: captura faltante o finalmente después de intentarlo.


Prueba de JavaScript… captura en setTimeout

los try...catch no detectará la excepción si sucedió en «cronometrado» código, como en setTimeout(). Por ejemplo,

try {
    setTimeout(function() {
        // error in the code
    }, 3000);
} catch (e) {
  console.log( "won't work" );
}

Lo anterior try...catch no funcionará porque el motor ya ha salido del try..catch construir y la función se ejecuta más tarde.

los try..catch el bloque debe estar dentro de esa función para detectar una excepción dentro de una función cronometrada. Por ejemplo,

setTimeout(function() {
    try {
        // error in the code
    } catch {
        console.log( "error is caught" );
    }
}, 3000);

También puede utilizar el throw declaración con el try...catch instrucción para usar excepciones definidas por el usuario. Por ejemplo, cierto número se divide por 0. Si quieres considerar Infinity como un error en el programa, entonces puede lanzar una excepción definida por el usuario usando el throw declaración para manejar esa condición.

Aprenderá sobre la instrucción throw de JavaScript en el siguiente tutorial.

Publicaciones Similares

Deja una respuesta

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