首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在弹性4j中达到最大尝试后抛出异常-重试

在弹性4j中达到最大尝试后抛出异常-重试
EN

Stack Overflow用户
提问于 2019-07-28 16:50:27
回答 1查看 1K关注 0票数 1

如何在达到最大重试次数时抛出异常。在我的例子中,当Response有200以外的代码时,我想抛出异常。

代码语言:javascript
复制
Retry retry = RetryRegistry.of(
  RetryConfig.<Response> custom()
    .retryOnResult({ it.statusCode() != 200 })
    .build())
  .retry("my-retry")


Response response = Retry.decorateSupplier(retry, { foo.bar() }).get()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-31 14:07:46

当HTTP代码不是200时,您可以包装代码并抛出异常。

例如,在Java代码中:

代码语言:javascript
复制
Supplier<Response> supplier= () -> foo.bar();
Supplier<String> supplierWithResultHandling = SupplierUtils.andThen(supplier, result -> {
   if (result.statusCode().is4xxClientError()) {
      throw new HttpClientErrorException(result.statusCode());
   } else if (result.statusCode().is5xxServerError())  {
      throw new HttpServerErrorException(result.statusCode());
   }
  return result;
});

Response response = retry.executeSupplier(supplierWithResultHandling);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57243021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档