java捕获超时异常代码_使用RestTemplate调用API时如何捕获超时异常 - java
时间: 2024-03-04 18:41:36 浏览: 280
使用RestTemplate调用API时,可以通过设置超时时间来控制请求的执行时间。如果请求超时,会抛出`java.net.SocketTimeoutException`异常。可以通过捕获该异常来处理超时情况。
下面是一个使用RestTemplate调用API并捕获超时异常的示例代码:
```java
RestTemplate restTemplate = new RestTemplate();
SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
// 设置连接超时和读取超时时间
requestFactory.setConnectTimeout(5000);
requestFactory.setReadTimeout(5000);
restTemplate.setRequestFactory(requestFactory);
try {
ResponseEntity<String> response = restTemplate.getForEntity("http://example.com/api", String.class);
// 处理响应
} catch (RestClientException e) {
if (e.getCause() instanceof SocketTimeoutException) {
// 处理超时异常
} else {
// 处理其他异常
}
}
```
在上面的代码中,首先创建了一个RestTemplate实例,并设置了连接超时和读取超时时间为5秒。然后通过调用`getForEntity`方法发送GET请求,并捕获`RestClientException`异常。如果异常的cause是`SocketTimeoutException`,则说明请求超时了,可以在catch块中处理超时异常。否则,就是其他类型的异常,需要根据具体情况进行处理。
阅读全文