Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从resilience4j TimeLimiter引发自定义异常?_Java_Spring Boot_Exception_Vavr_Resilience4j - Fatal编程技术网

Java 如何从resilience4j TimeLimiter引发自定义异常?

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

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

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将负责抛出该异常。

显示您的工作到此为止请使用代码更新问题。评论中没有