Saltar al contenido

JavaScript: Manejo de errores con try-catch

Dominando el manejo de errores en JavaScript con try...catch

Manejar los errores de manera efectiva es crucial para construir aplicaciones robustas en JavaScript. Este artículo profundiza en el uso de la sentencia try...catch, proporcionando ejemplos prácticos y orientación para mejorar tus estrategias de manejo de errores.

Comprendiendo try...catch en JavaScript

La sentencia try...catch en JavaScript es una herramienta poderosa para gestionar excepciones, es decir, errores que ocurren durante la ejecución del programa. Te permite manejar estas excepciones de manera elegante sin detener todo el script.

Sintaxis básica de try...catch

Aquí hay un ejemplo simple para demostrar la estructura básica de try...catch:


Output appears here after Run.

En este ejemplo, cualquier error que ocurra dentro del bloque try es capturado por el bloque catch, donde puede ser manejado sin provocar que el script se detenga.

Manejo de errores específicos

También puedes manejar tipos específicos de errores examinando el objeto de error:


Output appears here after Run.

Este ejemplo maneja específicamente SyntaxError que pueden ocurrir durante el análisis de JSON. Si el error capturado es una instancia de SyntaxError, se maneja registrando un mensaje específico. Si no lo es, el error se vuelve a lanzar, potencialmente para ser capturado por un manejador de errores de nivel superior o para detener el programa, indicando un escenario de error no manejado.

Uso de finally

La cláusula finally se ejecuta después de los bloques try y catch, independientemente de si se lanzó o capturó una excepción. Es útil para liberar recursos o realizar tareas de limpieza, sin importar el resultado de try...catch:


Output appears here after Run.

Esto asegura que el mensaje "Finally block executed" se registre ya sea que ocurra un error o no, demostrando cómo finally puede usarse para realizar acciones de limpieza necesarias.

Ejemplos reales de solicitudes a API

Usar la API de JSONPlaceholder es una forma fantástica de practicar el manejo de datos del mundo real en JavaScript, especialmente al trabajar con solicitudes asíncronas y manejar errores potenciales que puedan surgir durante estas operaciones. Aquí tienes algunos ejemplos del mundo real usando la API de JSONPlaceholder, que ofrece datos REST en línea falsos con los que puedes experimentar para pruebas y prototipado.

Ejemplo 1: Obtener publicaciones y manejar errores

En este ejemplo, obtenemos publicaciones de la API de JSONPlaceholder usando fetch y manejamos errores de red potenciales o problemas con la respuesta de la API:


Output appears here after Run.

Este script realiza una solicitud HTTP para recuperar un elemento de tarea único. Verifica si la respuesta es exitosa (es decir, estado HTTP 200-299). Si no lo es, lanza un error con el estado de la respuesta. Cualquier error, ya sea por problemas de red o por la sentencia throw, se captura en el bloque catch y se registra. El bloque finally se ejecuta independientemente del resultado, asegurando que se realicen cualquier limpieza u operaciones finales necesarias.

Ejemplo 2: Enviar datos y manejar excepciones

Aquí, demostramos cómo enviar datos al servidor usando el método POST y manejar las excepciones de manera adecuada:


Output appears here after Run.

En este script, estamos enviando una nueva publicación al servidor. La función fetch se usa con el método POST, incluyendo encabezados y un cuerpo en formato JSON. Si la respuesta del servidor indica un fallo (estado HTTP no 2xx), se lanza un error, que luego se captura y maneja en el bloque catch. Independientemente del éxito o fallo, el bloque finally asegura que la operación se marque como completa.

Ejemplo 3: Provocar y manejar un error deliberadamente

Este ejemplo solicita intencionalmente un ID de usuario que no existe en la API de JSONPlaceholder, desencadenando un error 404 Not Found, que capturaremos y manejaremos.


Output appears here after Run.

Cómo funciona este ejemplo

  1. Endpoint de API inválido: La función fetch se llama con una URL que incluye un ID de usuario inválido (99999). Dado que JSONPlaceholder típicamente no tiene un usuario en este índice, la API devolverá un error 404.
  2. Verificar la validez de la respuesta: El código verifica si el estado de la respuesta no está en el rango exitoso (200-299). Dado que el ID de usuario es inválido, la respuesta de la API probablemente sea 404, activando nuestro manejo de errores en la comprobación if (!response.ok).
  3. Lanzamiento de error: Dado que la respuesta no es correcta, se lanza un error con el mensaje que incluye el estado HTTP, lo cual en este caso indicará un error 404 Not Found.
  4. Bloque catch: El bloque catch captura el error lanzado y registra un mensaje específico usando console.log. Esto proporciona una retroalimentación clara sobre lo que salió mal.
  5. Bloque finally: Este bloque se usa para limpieza o declaraciones finales, indicando la finalización del intento, independientemente del resultado.

Conclusión

El manejo efectivo de errores en JavaScript es clave para desarrollar aplicaciones de alta calidad y resistentes. El uso de try...catch permite a los desarrolladores manejar errores de manera elegante y mantener el control del flujo de la aplicación, incluso cuando surgen problemas inesperados. Al incorporar estas prácticas en tu código JavaScript, aseguras que tus aplicaciones sean más robustas y fáciles de usar, mejorando la experiencia general del usuario y la estabilidad del sistema.

Nota: try...catch solo captura errores sincrónicos o errores de promesas esperadas (await). No captura errores de promesas no esperadas.

Práctica

¿Cuál es el propósito de la sentencia try/catch en JavaScript?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.