调用 restTemplate.getForObject 时如何处理找不到数据

How to handle no data found when calling restTemplate.getForObject

我正在调用 restTemplate.getForObject 从 Mongo 数据库中检索某个值。数据库中没有找到预期的数据,如何处理异常?

Object[] mongodata = restTemplate.getForObject(resulturl,Object[].class,keyval);
list = Arrays.asList(mongodata); 

其中 keyval 是包含 json 的字符串,resulturl 是用于调用 mongo

的 url

基本上,您有两个主要选择:

  1. 只需将 RestTemplate 调用包装在 try-catch 块中并处理错误(如果 404 未找到响应,它将是 HttpClientErrorException)。像
try {
  Object[] mongodata = restTemplate.getForObject(resulturl,Object[].class,keyval);
  list = Arrays.asList(mongodata);
} catch (HttpClientErrorException e) {
  if (e.getStatusCode() == HttpStatus.NOT_FOUND) {
    // Do something
  } else {
    throw e;
  } 
}
  1. 实施 ResponseErrorHandler.

有关示例,请参见 Baeldung 上的 this post。