En este tutorial, aprenderá acerca de las declaraciones try… catch…. Finalmente para manejar excepciones en JavaScript con la ayuda de ejemplos.
Los bloques try
, catch
y finally
se utilizan para manejar excepciones (un tipo de error). Antes de conocerlos, 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 escribe 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 en tiempo de ejecución : este tipo de error ocurre durante la ejecución del programa. Por ejemplo,
llamar a una función o variable no válida.
Estos errores que ocurren durante el tiempo de ejecución se denominan excepciones . Ahora, veamos cómo puede manejar estas excepciones.
Declaración de JavaScript try … catch
La try… catch
declaración se usa para manejar las excepciones. Su sintaxis es:
try ( // body of try ) catch(error) ( // body of catch )
El código principal está dentro del try
bloque. Mientras se ejecuta el try
bloque, si se produce algún error, se pasa al catch
bloque. El catch
bloque maneja los errores según las declaraciones de captura.
Si no se produce ningún error, try
se ejecuta el código dentro del bloque y catch
se omite 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); )
Salida
NaN Un error capturado Mensaje de error: ReferenceError: a no está definido
En el programa anterior, no se define una variable. Cuando intenta imprimir la variable a, el programa arroja un error. Ese error está atrapado en el catch
bloque.
Declaración de prueba de JavaScript … captura … finalmente
También puede usar la try… catch… finally
declaración para manejar excepciones. El finally
bloque se ejecuta tanto cuando el código se ejecuta correctamente como si se produce un error.
La sintaxis de try… catch… finally
block 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'); )
Salida
NaN Un error capturado Mensaje de error: ReferenceError: a no está definido Finalmente se ejecutará cada vez
En el programa anterior, ocurre un error y ese error es detectado por el catch
bloque. El finally
bloque se ejecutará en cualquier situación (si el programa se ejecuta correctamente o si se produce un error).
Nota : Necesita usar catch
o finally
declaración tras try
declaración. De lo contrario, el programa arrojará un error Uncaught SyntaxError: Missing catch o finalmente después del intento.
Prueba de JavaScript … captura en setTimeout
El try… catch
no va a detectar la excepción si hubiera sucedido 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 abandonado la try… catch
construcción y la función se ejecuta más tarde.
El try… catch
bloque debe estar dentro de esa función para detectar una excepción dentro de una función temporizada. Por ejemplo,
setTimeout(function() ( try ( // error in the code ) catch ( console.log( "error is caught" ); ) ), 3000);
También puede usar la throw
declaración con la try… catch
declaración para usar excepciones definidas por el usuario. Por ejemplo, cierto número se divide por 0 . Si desea considerarlo Infinity
como un error en el programa, puede lanzar una excepción definida por el usuario utilizando la throw
declaración para manejar esa condición.
Aprenderá sobre la instrucción throw de JavaScript en el siguiente tutorial.