gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 09:42:56 25 4
gpt4 key购买 nike

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

Try.ofCallable(methodWhichThrowsCustomException).getOrElseThrow(throwable -> {throw new ApplicationException(HttpStatus.REQUEST_TIMEOUT,
ErrorConstant.ERROR_CODE_REQUEST_TIMEOUT, ErrorConstant.ERROR_MESSAGE_TIME_OUT);
});
}

在这里,我尝试抛出“methodWhichThrowsCustomException”抛出的异常,但我无法做到这一点,它只抛出此处抛出的异常。

最佳答案

我不知道resilience4j,但我很确定您使用的getOrElseThrow是错误的。您最可能想要的语法是这样的:

Try.ofCallable(methodWhichThrowsCustomException())
.getOrElseThrow(throwable -> new ApplicationException(HttpStatus.REQUEST_TIMEOUT, ErrorConstant.ERROR_CODE_REQUEST_TIMEOUT, ErrorConstant.ERROR_MESSAGE_TIME_OUT));

请注意,您不需要在 getOrElseThrow 中进行抛出,您只需返回要抛出的新异常,Vavr 会负责抛出它。

关于java - 如何从resilience4j TimeLimitter 抛出自定义异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56916396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com