0

我可以直接在服务层使用 spring DataAccessException 吗?这是在服务层中传播框架工作类的良好实践/设计吗?

或者

我应该在 dao 层捕获 DataAccessException 并将其作为更通用的异常重新抛出吗?

4

3 回答 3

1

我认为 DAO 层抛出该异常很好。服务层已经知道持久层,因此不会创建额外的依赖项。

于 2012-05-20T11:10:18.110 回答
1

最好将 DataAccessException(从 DAO 层抛出)映射/包装到应用程序特定的异常层次结构(在服务层中),这样依赖/调用层就必须处理您的应用程序特定的异常类。

于 2012-05-20T11:14:38.733 回答
0

就个人而言,我在服务层捕获所有检查的异常并抛出我自己的 ServiceExceptions 用捕获的异常初始化它们。这样异常信息不会丢失,Controllers也不需要处理低级异常。但是在 DAO 层中没有必要这样做。

在“Effective Java”(J. Bloch)中有一个关于异常处理的非常好的一章,它和本书的其余部分一样值得阅读。第 61 条处理这个问题。

http://books.google.de/books/about/Effective_Java.html?id=Ft8t0S4VjmwC

于 2012-05-21T12:19:37.630 回答