是否有一个通用的spring-data Exception类来处理repo层中抛出的异常?

时间:2015-10-01 21:06:19

标签: spring exception spring-data

我使用spring-data-jpa来读/写我的数据库。我已经阅读了spring-data的文档,而我似乎找不到的一件事就是如何处理异常。

我希望捕获由repo操作引发的任何类型的异常。有没有办法在try / catch中包装单个repo操作并捕获任何RuntimeException?我宁愿避免这样做,因为那是一个比我更喜欢的东西。

spring-data是否将所有异常包装在自己的SpringDataException()或类似内容中?我查看了spring-data-commons jar以及spring-data-jpa jar并没有找到适用的东西。

1 个答案:

答案 0 :(得分:4)

  

spring-data是否将所有异常包装在自己的SpringDataException()或类似的

是的,有点儿。 spring-data(-jpa)启用从JPA异常到Spring的DataAccessException层次结构的异常转换:

来自spring-data-jpa参考实现:

  

...除此之外,它还激活了使用@Repository注释的所有bean的持久性异常转换,以便将JPA持久性提供程序抛出的异常转换为Spring的DataAccessException层次结构。

来自Spring参考实现:

  

Spring提供了从特定于技术的异常(如SQLException)到其自己的异常类层次结构的便捷转换,并将DataAccessException作为根异常。这些异常包装了原始异常,因此从来没有任何人可能会丢失任何可能出错的信息......

了解更多read about Spring DAO support