首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从resilience4j TimeLimitter抛出自定义异常?

如何从resilience4j TimeLimitter抛出自定义异常?
EN

Stack Overflow用户
提问于 2019-07-07 01:50:05
回答 1查看 433关注 0票数 1

我正在使用Resilience4j的TimeLimiter来控制RestTemplate调用的超时请求。如果response.getBody()为空,我会抛出一个自定义异常,但getorElseThrow中提供的Resilience4j总是会抛出异常。我如何在这里抛出一个自定义异常?

代码语言:javascript
复制
Try.ofCallable(methodWhichThrowsCustomException).getOrElseThrow(throwable -> {throw new ApplicationException(HttpStatus.REQUEST_TIMEOUT,
                    ErrorConstant.ERROR_CODE_REQUEST_TIMEOUT, ErrorConstant.ERROR_MESSAGE_TIME_OUT);
        });
    }

这里我试图抛出"methodWhichThrowsCustomException“抛出的异常,但我不能这样做,它只抛出了这里抛出的异常。

EN

回答 1

Stack Overflow用户

发布于 2019-07-21 13:34:11

我不知道resilience4j,但我非常确定您使用getOrElseThrow是错误的。您最可能需要的语法是:

代码语言:javascript
复制
Try.ofCallable(methodWhichThrowsCustomException())
   .getOrElseThrow(throwable -> new ApplicationException(HttpStatus.REQUEST_TIMEOUT, ErrorConstant.ERROR_CODE_REQUEST_TIMEOUT, ErrorConstant.ERROR_MESSAGE_TIME_OUT));

请注意,你不需要在getOrElseThrow中抛出throw,你只需要返回新的异常来抛出,Vavr将负责抛出它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56916396

复制
相关文章

相似问题

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