var building = constructedBuildingsRepository.findById(request.getConstructedBuildingId());
if(building.isEmpty()) throw new NoSuchBuildingException("No building with specified id!");
else
{
constructedBuildingsRepository.delete(building.get());
return new DeconstructResponse(request.getConstructedBuildingId());
}
}
----------------------------------
@DeleteMapping("/deconstruct")
private ResponseEntity<?> deconstructBuilding(DeconstructRequest request) {
try
{
var response = buildingService.destroyBuilding(request);
return new ResponseEntity<>(response, HttpStatus.OK);
}
catch (NoSuchBuildingException exception) {
return new ResponseEntity<>(exception.getMessage(), HttpStatus.BAD_REQUEST);
}
}
---------------
Всем привет! У меня вопрос по поводу оформления кода. Это ок в сервисах кидать ошибки на некоторые ситуации (неправильный пароль, неизвестное имя и тд) и потом отлавливать их в контроллере и кидать соответствующее ответы? Просто это все-таки замедляет программу. Какой подход обычно юзается в продакшене?
Использовать isEmpty() и get() антипаттерн, лучше использовать ifPresentOrElse() или в твоём случае orElseThrow()
А есть какие-нибудь ресурсы (статьи или видео, на русском или английском), чтоб почитать про текущие антипаттерны?
Кмк там прям в джавадоке написано
А чем вам isPresnt то не угодил?
Так там другой метод использовался
Подскажите пожалуйста, почему нельзя использовать !isEmpty()?
Обсуждают сегодня