gpt4 book ai didi

java - Spring Dao和Dao patter在异常处理上的冲突

转载 作者:行者123 更新时间:2023-11-29 08:12:43 28 4
gpt4 key购买 nike

请求流 - Jsf(Backing Bean)-> 业务层 -> DAO 层(spring Dao)

一些文章建议 DAO 层捕获所有 sql 异常并且应该抛出已检查的异常。业务层捕获该异常并根据业务规则抛出自定义异常。

我的疑问是 spring hibernateTemplate 已经将所有异常转换为未经检查的异常,为什么我应该从 DAO 中抛出已检查的异常?

请推荐一些好的方法。谢谢

最佳答案

My doubt is as spring hibernateTemplate already convert all exception into unchecked exception why should i throw checked exception from DAO?

A) hibernateTemplate 将特定于基础结构的已检查异常转换为 RuntimeExceptions。这很好,您的服务层不必处理特定于技术的异常。您可能想要抛出的已检查异常将属于您自己的层次结构,其名称和抽象对于在您的平台内跨层传达故障有意义。

b) HibernateTemplate(和 JpaTemplate,就此而言)不再是推荐的做事方式。从 Spring 3 开始,应该使用纯 Hibernate(或纯 JPA),事务管理和异常转换应该仅通过 AOP 进行。

关于java - Spring Dao和Dao patter在异常处理上的冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7144221/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com