DataAccessException与SQLException

Nit*_*tal 15 java spring exception

我有两个与Spring框架中的异常处理有关的问题.

1)为什么Spring框架DataAccessException是运行时异常,而Core Java是SQLException一个经过检查的异常?

2)Spring的异常处理优于Java的异常handlnig机制有什么优势?

Tod*_*odd 14

使用的原因DataAccessExceptionSQLException在于,它更普遍描述的问题.如果你有一个Repository或DAO接口,它有两个不同的实现,一个用于Oracle,一个用于Cassandra,你可以让这两个实现的异常表示失败.

至于为什么这是运行时而不是检查异常,它允许调用者不必显式处理它.在我的经验中,似乎如果一个SQLException或者DataAccessException被抛出,那么我可以或者想要做的事情并不多,除了让它冒泡到可以做到的人.必须在每一层声明throwables对调用者来说是更多的负担.如果其中一个人想抓住并处理它,他们就可以.

这是JavaDocs(感谢@Tom!)

  1. DataAccesssException
  2. 的SQLException