Java 如何从resilience4j TimeLimiter引发自定义异常?
我使用resilience4j的TimeLimiter来控制RestTemplate调用的超时请求。如果response.getBody()为null,我将抛出一个自定义异常,但是resilience4j总是抛出getorelsetrow中提供的异常。我如何在这里抛出自定义异常Java 如何从resilience4j TimeLimiter引发自定义异常?,java,spring-boot,exception,vavr,resilience4j,Java,Spring Boot,Exception,Vavr,Resilience4j,我使用resilience4j的TimeLimiter来控制RestTemplate调用的超时请求。如果response.getBody()为null,我将抛出一个自定义异常,但是resilience4j总是抛出getorelsetrow中提供的异常。我如何在这里抛出自定义异常 Try.ofCallable(methodWhichThrowsCustomException).getOrElseThrow(throwable -> {throw new ApplicationExceptio
Try.ofCallable(methodWhichThrowsCustomException).getOrElseThrow(throwable -> {throw new ApplicationException(HttpStatus.REQUEST_TIMEOUT,
ErrorConstant.ERROR_CODE_REQUEST_TIMEOUT, ErrorConstant.ERROR_MESSAGE_TIME_OUT);
});
}
在这里,我试图抛出“MethodwhichRowsCustomException”抛出的异常,但我无法做到这一点,它只是抛出了这里抛出的异常。我不知道
resilience4j
,但我很确定您使用的getorelsetrow
是错误的。您最可能需要的语法是:
Try.ofCallable(methodWhichThrowsCustomException())
.getOrElseThrow(throwable -> new ApplicationException(HttpStatus.REQUEST_TIMEOUT, ErrorConstant.ERROR_CODE_REQUEST_TIMEOUT, ErrorConstant.ERROR_MESSAGE_TIME_OUT));
请注意,您不需要在
getorelsetrow
内部throw
,只需返回要抛出的新异常,Vavr将负责抛出该异常。显示您的工作到此为止请使用代码更新问题。评论中没有