DAO 不应该把异常处理掉,因为事务的边界不在 DAO 层上,而是在 Service 层上,假如一个业务逻辑调用了两个 DAO 的方法(A、B)组成一个事务体,若 A 正常执行了,而 B 执行时却发生了异常,这时 A 的执行就需要回滚,若将 B 中的异常捕获了,那根本就不知道 B 是正常执行而是异常执行了,也无法处理事务了。
[/Quote]
[Quote=引用 4 楼 bao110908 的回复:]
DAO 不应该把异常处理掉,因为事务的边界不在 DAO 层上,而是在 Service 层上,假如一个业务逻辑调用了两个 DAO 的方法(A、B)组成一个事务体,若 A 正常执行了,而 B 执行时却发生了异常,这时 A 的执行就需要回滚,若将 B 中的异常捕获了,那根本就不知道 B 是正常执行而是异常执行了,也无法处理事务了。
[/Quote]
DAO 不应该把异常处理掉,因为事务的边界不在 DAO 层上,而是在 Service 层上,假如一个业务逻辑调用了两个 DAO 的方法(A、B)组成一个事务体,若 A 正常执行了,而 B 执行时却发生了异常,这时 A 的执行就需要回滚,若将 B 中的异常捕获了,那根本就不知道 B 是正常执行而是异常执行了,也无法处理事务了。
[/Quote]