0

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

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

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

4

1 回答 1

1

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

  1. 只需将调用包装RestTemplate在一个try-catch块中并处理错误(如果 404 not found 响应,它将是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 上的这篇文章。

于 2020-01-27T07:14:28.103 回答