なんらかの理由で例外をスローするのは好きではありません。おそらくパフォーマンスへの影響が原因で、この問題を再考する必要があるかどうか疑問に思っています。
サービス レイヤー (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 メソッドのオプションは次のとおりです。
- ユーザーに権限がない場合は、例外をスローします
- 成功した場合は、成功/失敗フラグとエラー コレクションと共に、新しい製品 ID を持つある種の Response オブジェクトを返します。
注意事項:
このサービス レイヤーは、Web 以外のアプリや安静な Web サービスでも再利用できます。
ベストプラクティスと見なされるものは何ですか?