onErrorResume
: создает резервный поток при возникновении некоторого исключения в восходящем потоке.
doOnError
: оператор побочного эффекта. Предположим, вы хотите записать, какая ошибка происходит в восходящем потоке.
Пример:
Mono.just(request)
.flatMap(this::makeHTTPGet)
.doOnError(err -> {
log.error("Some error occurred while making the POST call",err)
})
.onErrorResume(err -> Mono.just(getFallbackResponse()));
Видите ли, doOnError
является оператором побочного эффекта. Это как вставить термометр в водопровод и измерить температуру. Влияет ли это на конвейер вообще? Нет.
Предположим, теперь, когда трубопровод сломан - город все еще должен получить воду правильно? Таким образом, у нас есть запасной конвейер, который можно активировать в таких случаях. onErrorResume
делает именно это.
Примечание: Вы также можете войти в систему onErrorResume
. Ничто не мешает вам сделать это.