У меня есть длинная цепочка завершаемых фьючерсов в моем проекте, каждый шаг вызывает бэкэнд-API, который может дать несколько сообщений об ошибках и один ответ об успехе.Теперь, после разбора ответа, мне нужно судить, если это ошибка, то мне нужно показать пользователю.Мне также нужно знать, на каком этапе в моей цепочке возникла эта ошибка.
Мой подход (показанный ниже) заключается в том, чтобы генерировать исключительную ситуацию времени выполнения, когда я сталкиваюсь с ошибочным ответом, и затем добавлять исключительно блок в мою цепочку.,Я чувствую, что это не лучший способ сделать это, поскольку исключение времени выполнения не вписывается в этот сценарий.Это также делает мой код уродливым, поскольку я должен делать это всякий раз, когда обрабатываю ответ, что приводит к дополнительной проверке исключений.Есть ли лучший способ сделать это?
CompletableFuture.supplyAsync(() -> {
//some api call
Response response = request.send();
if(response.hasError()){ //this is what I am doing right now
logger.error("this is error response");
throw new ResponseErrorException("Error response received for request");
}
})
Это в основном повторяется для каждого шага в цепочке.
Резюме: Если я получу ответ об ошибке на каком-либо из шагов в цепочке CompletableFuture, каков хороший способ передать его пользователю?
Редактировать: Если нет лучшего подхода, пожалуйста,не стесняйтесь делиться своими взглядами на мой подход.