Мне не нравится бросать исключения по какой-то причине, возможно, из-за хита производительности, которого я не знаю, задаваясь вопросом, следует ли мне передумать эту проблему.Должен ли сервисный слой вызывать исключение?
Должен ли мой сервисный уровень (использует бизнес-логику Dao + и т. Д.) Бросать исключения?
public ModelAndView createProduct(@Valid ProductForm productForm, ..) {
ModelAndView mav = new ModelAndView(...);
if(bindingResult.hasErrors()) {
return mav;
}
// throw exception if user doesn't have permissions??
productService.create(product, userPermissions);
}
Так что мои варианты в методе создания на ProductService:
- , если пользователь не имеет права бросать исключение
- возвращение какой-то объект Response, который будет иметь новый идентификатор продукта, если он был успешным, наряду с флагом успеха/сбоя и сбором ошибок.
Что нужно иметь в виду:
я могу повторно использовать этот сервис слой в не веб-приложение, а также в успокоительной веб-сервиса.
Что считается лучшей практикой?