Manejo de errores try...catch
En JavaScript, la estructura try...catch se utiliza para manejar errores que ocurren durante la ejecución de un bloque de código. Esto permite que el programa continúe funcionando incluso si se produce un error, en lugar de detenerse abruptamente.
El uso de try...catch es fundamental para manejar errores de manera adecuada y evitar que detengan la ejecución de tu programa.
1. Cómo funciona try...catch? #
La estructura try...catch se divide en dos bloques principales:
try: Contiene el código que podría generar un error.catch: Se ejecuta si ocurre un error en el bloquetry. Aquí es donde puedes manejar el error y decidir qué hacer a continuación.
Sintaxis básica:
1try { 2 // Código que puede lanzar un error 3} catch (error) { 4 // Código para manejar el error 5}
try: Intenta ejecutar el código dentro de este bloque.catch: Captura cualquier error que ocurra en el bloquetryy lo maneja. La variableerrorcontiene información sobre el error que ocurrió.
Ejemplo básico #
Supongamos que intentamos ejecutar un código que puede causar un error, como intentar acceder a una propiedad de una variable undefined:
1try { 2 let resultado = valor + 1; 3} catch (error) { 4 console.log("Ocurrió un error: " + error.message); 5}Salida de consola Ocurrió un error: valor is not defined
En este ejemplo:
- El bloque
tryintenta ejecutarvalor + 1. - Dado que
valorno está definida, se produce un error. - El bloque
catchcaptura el error y muestra un mensaje en la consola: "Ocurrió un error: valor is not defined".
Uso de finally #
Opcionalmente, puedes agregar un bloque finally después de catch. El código dentro de finally se ejecuta siempre, sin importar si ocurrió un error o no. Es útil para ejecutar código de limpieza, como cerrar conexiones o liberar recursos.
Sintaxis con finally:
1try { 2 // Código que puede lanzar un error 3} catch (error) { 4 // Código para manejar el error 5} finally { 6 // Código que se ejecuta siempre, ocurra o no un error 7}
Ejemplo con finally:
1try { 2 let resultado = 10 / 0; // No causa error, pero resultado es Infinity 3} catch (error) { 4 console.log("Ocurrió un error: " + error.message); 5} finally { 6 console.log("Este código se ejecuta siempre."); 7}Salida de consola Ocurrió un error: Este código se ejecuta siempre.
En este ejemplo:
tryintenta dividir10por0. Aunque esto no lanza un error,resultadose convierte enInfinity.- No se ejecuta el bloque
catchporque no hay un error real. - El bloque
finallyse ejecuta de todos modos, mostrando "Este código se ejecuta siempre." en la consola.
Resumen del tema
Conceptos clave #
- Manejo Estructurado de Excepciones:
try: bloque de código susceptible a lanzar excepciones en tiempo de ejecución.catch (error): captura el objeto de excepción (Error.name,Error.message,Error.stack) impidiendo la caída del proceso.finally: bloque de ejecución garantizada incondicional, ideal para liberar recursos o finalizar estados de carga (spinners).
- Lanzamiento Manual (
throw): permite emitir errores personalizados mediantethrow new Error("mensaje").
Qué debes recordar #
Usa try...catch...finally para interceptar errores en tiempo de ejecución y asegurar que tareas críticas de limpieza en finally se completen siempre.