Saltar al contenido

Manejo de errores con promesas en JavaScript

Las promesas de JavaScript son una parte fundamental para gestionar operaciones asíncronas, lo que permite a los desarrolladores manejar eventos asíncronos con mayor flexibilidad y facilidad (Ver JavaScript: Promesas). El manejo de errores en promesas es crucial para escribir código JavaScript robusto que pueda lidiar con problemas inesperados sin que la aplicación se bloquee.

El manejo de errores en promesas se logra utilizando el método .catch() o pasando un segundo argumento al método .then(). Ambos métodos proporcionan formas de gestionar y recuperarse de errores que ocurren durante la ejecución de operaciones asíncronas.

Uso del método .catch()

El método .catch() se utiliza para capturar cualquier error que ocurra durante la ejecución de la cadena de promesas.


Output appears here after Run.

Uso del segundo argumento de .then()

Alternativamente, se puede pasar un segundo argumento a .then() para manejar errores que ocurran después de que se ejecute la función de devolución de llamada del primer argumento.


Output appears here after Run.

Técnicas avanzadas de manejo de errores

Flujo de errores en cadenas

Los errores deben propagarse correctamente a través de la cadena de promesas para garantizar que se manejen en el nivel adecuado. Por ejemplo, si colocas el bloque .catch() antes del bloque .then(), el bloque .then() aún se ejecutará. Debido a que .catch() resuelve la cadena de promesas (a menos que vuelva a lanzar un error), el .then() subsiguiente recibe undefined como argumento.

WARNING

Cuando colocas el bloque .catch() antes del bloque .then(), cualquier error lanzado dentro de .then() no será capturado por el .catch() anterior. Solo se manejará si agregas otro bloque .catch() después de él.


Output appears here after Run.

Manejo de errores específicos

JavaScript permite estrategias de manejo de errores más matizadas, como filtrar errores según su tipo o las circunstancias específicas del error. En el siguiente ejemplo manejamos un TypeError. Un TypeError ocurre típicamente cuando un valor no es del tipo esperado y, por lo tanto, la operación deseada no se puede realizar.


Output appears here after Run.

Mejores prácticas para el manejo de errores en promesas

  1. Siempre devuelve o lanza errores en los bloques catch para garantizar que los errores no pasen desapercibidos.
  2. Encadena las promesas correctamente para asegurar que los errores sean capturados y manejados.
  3. Utiliza bloques finally cuando sea necesario para realizar tareas de limpieza, independientemente del resultado de la promesa.

Implementación de un bloque finally

El método finally() se utiliza para ejecutar un bloque de código después de que las promesas se resuelvan, independientemente del resultado.


Output appears here after Run.

Conclusión

El manejo de errores efectivo en promesas de JavaScript es esencial para desarrollar aplicaciones web confiables y resistentes. Al comprender y utilizar los métodos .catch(), el segundo argumento de .then() y finally(), los desarrolladores pueden garantizar que sus aplicaciones manejen errores asíncronos de manera elegante y mantengan un funcionamiento fluido bajo diversas condiciones. Emplear estos métodos mejorará la funcionalidad y la experiencia del usuario en tus aplicaciones de JavaScript. Nota: Al trabajar con async/await, envuelve las llamadas a promesas en bloques try/catch para un manejo de errores que parezca síncrono.

Práctica

¿Cuál es el concepto clave que se debe entender sobre las promesas en el manejo de errores de JavaScript?

¿Te resulta útil?

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