В нашем проекте у нас есть некоторый запасной вариант на случай, если что-то плохое произошло, и обрабатывается doOnError . Меня беспокоит только то, что, возможно, оператор doOnError используется неправильно. Итак, давайте посмотрим на следующий пример:
callService1()
.flatMap(service1Response -> {
//process service1Response
})
.doOnError(callService2.subscribe())
Когда поток поступает в doOnError, мы вызываем другую службу.
В doOnError нам нужно подписать вручную на Mono, извлеченный callService2 , чтобы выполнить код, и, кроме того, если в doOnError выдается ошибка, то Ошибка не отслеживается нашим GlobalErrorHandler.
Должны ли мы переосмыслить нашу обработку ошибок в этом случае? Я бы очень хотел не подписываться вручную на издателя. Как вы думаете ? Спасибо заранее.