Думаю, стоит ли кидать свои собственные эксепшены, если что-то не найдено. С одной стороны, это логично и не будет ошибок от Spring data JPA вроде EntityNotFoundException и куда менее понятных ошибок. Но с другой стороны, если с фронта все правильно настроено, то таких ситуаций и не должно быть. Еще и джава будет конкатенировать стринги, которые я передаю в ошибку, даже если ошибки не произошло.
Я только учусь и не понимаю, вот пример двух вариантов кода.
Первый, меня в нем беспокоит только конкатенация строк.
public VoteDTO getByid(int voteId) {
Vote vote = voteRepository.getById(voteId);
Optional<Vote> voteOptional = voteRepository.findById(voteId);
if(voteOptional.isEmpty()) {
throw new ApiException("Vote with id " + id +
"is not in DB");
}
return toVoteDto(voteOptional.get());
}
И второй без такой проверки ( Spring будет кидать свои эксепшены, если Entity не найдено, но является ли это проблемой? )
public VoteDTO getByid(int voteId) {
Vote vote = voteRepository.getById(voteId);
return toVoteDto(vote);
}