MANEJO DE ERRORES REACTIVOS

Tolerancia, resiliencia y control elegante de fallos

¿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

onErrorResume

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())
                    
onErrorReturn

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)
                    
retry

Ejemplo: "Pagas con QR y la red está lenta. El sistema intenta varias veces antes de mostrarte un error definitivo."

monedero.pagarQR()
    .retry(3)
                    
retryWhen

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.