Я хотел бы узнать наилучшую практику в следующих случаях, касающихся ответов API остальных.
Первый фрагмент кода
@GetMapping("/person/{id}")
public ResponseEntity<Person> postPersonDetails(@PathVariable("id) Long id) {
Person person = personService.getPersonById(id);
if (null == person) {
throw new ResourceNotFoundException().withMessage("PERSON_NOT_FOUND");
}
return new ResponseEntity<Person>(person, HttpStatus.OK);
}
Второйкусок кода
@GetMapping("/person/{id}")
public ResponseEntity<Person> postPersonDetails(@PathVariable("id) Long id) {
Person person = personService.getPersonById(id);
if (null == person) {
return new ResponseEntity<Person>(null, HttpStatus.NotFound);
}
return new ResponseEntity<Person>(person, HttpStatus.OK);
}
Вопрос
Какой из них лучше ответить на сообщение об ошибке потребителю API (пользователю)?
Бросок исключения оставляет сообщение об ошибке в журнале.Если выбрасывать исключение лучше, как я должен избегать оставлять сообщения об ошибках, которые происходят из преднамеренных исключений?
Спасибо