带有Rest Template的Spring Boot,错误捕获错误

问题描述 投票:0回答:1

我停止了使用剩余模板调用的实例,以便能够捕获抛出的错误。错误是:

org.springframework.web.client.ResourceAccessException: I/O error on POST request for

Caused by: java.net.SocketTimeoutException: Connect timed out

我处理 try / catch 块中的错误,并记录以验证是否捕获了 ResourceAccessException。

日志已打印,因此错误被捕获,并在该 catch 块内返回默认值。

但问题是,错误仍然打印在spring控制台中,我无法阻止。

try {
            ResponseEntity<String> exchange = restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);

            return PipsUtils.roundToTwo(Float.parseFloat(Objects.requireNonNull(exchange.getBody())));
        } catch (ResourceAccessException e) {
            log.error("An error occurred while connecting to instance with port: {}", port, e);
            throw new InstancesException("Connection to instances refused!");
        }

我想捕获错误并停止在控制台中打印它。

java spring-boot error-handling try-catch resttemplate
1个回答
0
投票

我知道我不应该这样做。 无论如何,请尝试下面的代码。

try {
        ResponseEntity<String> exchange = restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
        return PipsUtils.roundToTwo(Float.parseFloat(Objects.requireNonNull(exchange.getBody())));
} catch (ResourceAccessException e) {
       // I don't know return type of PipsUtils.roundToTwo
        return PipsUtils.roundToTwo(0f); 
}
© www.soinside.com 2019 - 2024. All rights reserved.