由于某种原因,我不喜欢抛出异常,也许是因为我不知道性能受到影响,想知道我是否应该重新考虑这个问题。
我的服务层(使用 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 的 create 方法中的选项:
- 如果用户没有权限,则抛出异常
- 返回某种类型的 Response 对象,如果成功,该对象将具有新的产品 ID,以及成功/失败标志和错误集合。
要记住的事情:
我可以在非 Web 应用程序中重用这个服务层,也可以在一个安静的 Web 服务中。
什么被认为是最佳实践?