DataAccessException vs SQLException

2022-09-02 10:34:30

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

  1. 为什么Spring框架是运行时异常,而核心Java是检查异常?DataAccessExceptionSQLException

  2. 与Java的异常处理机制相比,Spring的异常处理提供了哪些优势?


答案 1

使用over的原因是它更一般地描述了问题。如果你有一个存储库或DAO接口,它有两个不同的实现,一个用于Oracle,一个用于Cassandra,你可以让这一个异常表示两个实现的失败。DataAccessExceptionSQLException

至于为什么这是运行时而不是检查的异常,它允许调用方不必显式处理它。根据我的经验,如果抛出一个 或,除了让它冒泡给一个可以的人之外,我能做的或想做的不多。必须在每一层声明可抛出项对调用方造成更大的负担。如果他们中的一个人愿意抓住并处理它,他们可以。SQLExceptionDataAccessException

以下是JavaDocs(感谢@Tom!

  1. DataAccesssException
  2. SQLException

答案 2