Ответ 1
Оператор doOnError
позволяет вам вводить побочный эффект в распространение ошибки последовательности, но не останавливает само распространение ошибки. Абонент является конечным пунктом назначения событий, и они "выходят" из последовательности.
Вы можете увидеть полезность doOnError
в следующем примере:
api.getData()
.doOnError(e -> log.error(e))
.retry(2)
.subscribe(...)
Он позволяет заглянуть в ошибку, но позволяет повторить попытку в случае ошибки. С конечным абонентом:
api.getData()
.subscribe(v -> {}, e -> log.error(e) );
Вам необходимо организовать обработку ошибки (помимо ведения журнала) по-своему.