¿POR QUÉ ES
TAN
IMPORTANTE?
En sistemas reactivos, los errores no deben interrumpir el flujo. La clave está en anticipar, reaccionar y recuperarse sin bloquear la aplicación.
El manejo de errores reactivo permite construir sistemas verdaderamente resilientes y tolerantes a fallos.
ERRORES
CONTRO
LADOS
onErrorResume: Reemplaza la secuencia por una alternativa cuando ocurre un error.
onErrorReturn: Devuelve un valor por defecto si hay error.
retry: Reintenta la operación un número de veces.
retryWhen: Estrategia personalizada de reintentos.
ESCENARIOS
COTIDIANOS CON
MONEDEROS
Ejemplo: "Intentas recargar saldo, pero el banco está caído. El sistema te muestra una opción para usar otro método de pago sin que la app se caiga."
monedero.recargar()
.onErrorResume(err -> usarOtroMetodo())
Ejemplo: "Intentas consultar tu saldo, pero hay un error temporal. El sistema te muestra el último saldo conocido en vez de un error feo."
monedero.saldo()
.onErrorReturn(ultimoSaldo)
Ejemplo: "Pagas con QR y la red está lenta. El sistema intenta varias veces antes de mostrarte un error definitivo."
monedero.pagarQR()
.retry(3)
Ejemplo: "Intentas transferir dinero y el servicio está saturado. El sistema espera unos segundos y vuelve a intentar según una estrategia inteligente."
monedero.transferir()
.retryWhen(estrategiaInteligente)
Esencia
Un sistema reactivo debe anticipar y gestionar errores de forma elegante para seguir operando sin bloqueos y ofrecer una experiencia robusta.