У меня есть один API, который возвращает ошибки несколькими способами (я знаю, что это не очень хорошая идея, но это устаревший API). Мне нужно объединить три вызова API, только если предыдущий вызов успешен, у меня работает этот подход, за исключением некоторых случаев, когда возвращаются ошибки в полезной нагрузке (со статусом 200). Для этого я хочу использовать веб-клиент Spring и делаю следующее:
Mono
.when(placeOrderCall)
.doOnSuccess(response -> {
if (!isSuccesful(response)) {
throw new Exception("");
}
})
.then(changeSubscription)
.doOnSuccess(response -> {
if (!isSuccesful(response)) {
throw new Exception("");
}
})
.then(httpCall)
.doOnSuccess(response -> {
if (!isSuccesful(response)) {
throw new Exception("");
}
})
.doOnError(error -> System.out.println("Error"))
.block();
Но я не могу создать исключение в doOnSuccess
... Я хочу прервать поток и отправить его в doOnError
. Это возможно?
Спасибо!!!