catchError
Captura errores en el Observable que se manejan devolviendo un Observable nuevo o lanzando un error
Descripción
catchError captura errores en el Observable fuente, manejándolos de dos maneras posibles: bien devolviendo un Observable nuevo o bien lanzando un nuevo error.

Ejemplos
Capturar un error, retornando un Observable
import { throwError, of } from "rxjs";
import { catchError } from "rxjs/operators";
const error$ = throwError("¡Oh no!");
error$
.pipe(catchError((error) => of(`Error capturado grácilmente: ${error}`)))
.subscribe(console.log);
// Salida: Error capturado grácilmente: ¡Oh no!Capturar un error y lanzar otro error
Capturar los errores de un Observable interno
Al capturar los errores que ocurren en un Observable interno (un Observable emitido por un Observable de orden superior), se debe tener cuidado a la hora de utilizar el operador catchError ya que, si se coloca en el sitio equivocado, el flujo del Observable fuente no seguirá ejecutándose tras capturar el error.
A continuación, se puede ver cómo el uso incorrecto de catchError hará que, después de capturar el error que devuelve la primera petición, el flujo se completará y no se harán las otras dos peticiones restantes:
Sin embargo, si se utiliza catchError en el Observable interno, el comportamiento es el que se busca: cuando falle la primera petición, se capturará el error y el flujo seguirá ejecutándose, realizando las dos peticiones restantes:
Ejemplos de la documentación oficial
Continuar con un Observable diferente cuando ocurre un error
Reiniciar el Observable fuente en caso de error, parecido al operador retry()
Lanzar un error nuevo cuando el Observable fuente lance un error
Recursos adicionales
Last updated