【发布时间】:2013-05-08 07:18:54
【问题描述】:
我不知道这种方法是否最好。但是我有一个需要处理 Spring JPA 存储库(DAO 层)异常的要求。从某种意义上讲,句柄可能是将其传播到 UI 或可能在服务层上执行一些逻辑。
现在,按照目前的情况,来自存储库的所有 SQL 异常都被包装到运行时异常 DataAccessException 中。
现在,如果我想将此异常传播到我的 UI 层,一种方法是在服务层捕获此运行时异常并将此异常包装到我的自定义异常中,然后传播它。但我不想捕捉这个运行时异常。有什么方法可以覆盖 Spring JPA 的异常转换器行为并将所有 SQL 异常包装到我的自定义检查异常中?如果我能够做到这一点,我认为这种方法会更好。
【问题讨论】:
-
为什么不想捕获 DataAccessException?
-
是的..我可以这样做..但我将它作为最后的选择..缓存任何运行时异常..
-
捕获
DataAccessException不会捕获其他运行时异常。 -
而不是覆盖默认行为,这是有原因的,在相关方法或服务层周围应用
@AfterThrowing方面怎么样?从建议中进行任何自定义异常处理。只是一个example
标签: java hibernate exception jpa-2.0 spring-data-jpa