Как обрабатывать данные не найдены при вызове restTemplate.getForObject - PullRequest
0 голосов
/ 27 января 2020

Я звоню restTemplate.getForObject, чтобы получить определенное значение из пн go БД. Как обработать исключение, если ожидаемые данные не найдены в БД?

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

, где keyval - строка, содержащая json, а resulturl - URL для вызова mon go

1 Ответ

1 голос
/ 27 января 2020

По сути, у вас есть две основные опции:

  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;
  } 
}
Реализация ResponseErrorHandler.

См. этот пост о Baeldung для примера.

...