`
chengjie177
  • 浏览: 25846 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
文章分类
社区版块
存档分类
最新评论

DAO 中的异常处理

阅读更多
我们讨论过了事务界定和日志,现在对于如何在数据访问对象上应用它们有了更深入的理解。我们的第三个和最后一个讨论议题是异常处理。遵从几个简单的异常处理指导可以使您的 DAO 更容易使用、更健壮及更易于维护。
在实现 DAO 模式时,考虑以下问题:
DAO 的公共接口中的方法是否抛出检查过的异常?
如果是的话,抛出何种检查过的异常?
在 DAO 实现类中如何处理异常?
在使用 DAO 模式的过程中,我们的小组开发了一些处理异常的原则。遵从这些原则可以极大地改进您的 DAO:
DAO 方法应该抛出有意义的异常。
DAO 方法不应该抛出 java.lang.Exception 。 java.lang.Exception 太一般化了。它不传递关于底层问题的任何信息。
DAO 方法不应该抛出 java.sql.SQLException 。SQLException 是一个低级别的 JDBC 异常。一个 DAO 应该力争封装 JDBC 而不是将 JDBC 公开给应用程序的其余部分。
只有在可以合理地预期调用者可以处理异常时,DAO 接口中的方法才应该抛出检查过的异常。如果调用者不能以有意义的方式处理这个异常,那么考虑抛出一个未检查的(运行时)异常。
如果数据访问代码捕获了一个异常,不要忽略它。忽略捕获的异常的 DAO 是很难进行故障诊断的。
使用链接的异常将低级别的异常转化为高级别的异常。
考虑定义标准 DAO 异常类。Spring Framework (参阅 参考资料)提供了很好的一套预定义的 DAO 异常类。
----引用IBM文档
分享到:
评论

相关推荐

    J2EE项目中统一异常处理源码

    J2EE项目中统一异常处理,14类异常的自定义分析,支持dao层异常原因的返回

    JAVA_DAO 事务界定 异常处理,日志记录

    数据访问对象,事务界定。在本文中,Java 开发人员 Sean C. Sullivan 讨论了 DAO 编程中三个常常被忽略的方面:事务界定、异常处理和日志记录。

    Java异常介绍及Spring Boot统一异常处理

    Spring Boot 提供了统一的异常处理机制,通过使用 @ControllerAdvice 和 @ExceptionHandler 注解,可以实现对控制器层、Service 层、Dao 层以及 Spring 系统内定义的部分异常的统一处理。 在 Spring Boot 中,可以...

    JDBC_DAO设计思想与搭建骨架, 结合Service层讲解DAO层的异常处理

    NULL 博文链接:https://royzhou1985.iteye.com/blog/341849

    struts2的异常处理

    struts2的异常处理,解决异步请求时,异常以json格式发送到客户端。以及dao单元测试的配置。

    基于Struts的异常处理

    通过定义继承RuntimeException的异常类及继承ExceptionHandler的异常处理类,手动从dao层捕获异常。非常实用!

    Java Web项目整体异常处理机制

     出来工作一年时间了,我也大概对异常处理有了一些了解,在这呢小弟简单介绍下个人对异常处理的见解,抛砖引玉,希望各位大神提出宝贵的意见和建议。  拿spring+struts2+hibernate项目说明:通常一个页面请求到...

    yii2 开发api接口时优雅的处理全局异常的方法

    前言:个人觉得,学习或温习一套Web框架,在快速阅读一遍文档后,应从路由,控制器,请求/响应对象,数据模型(Logic,Dao,Entity),全局异常处理几个方面下手,这几项了解后,框架上手就游刃有余了。然后我比较...

    使用jdbc在DAO层实现了各DAO之间共享事务的示例

    自己写的一个java示例 该示例用jdbc与java事务来实现...该示例包含了一个方便调用的数据库访问工具类,该工具类实现了调用SQL语句,调用PreparedStatement对象,并对可能产生的异常进行了处理,保证了各DAO子类调用的简便性

    DAO编程模式

     Sullivan从三个方面讨论DAO编程的结构特征:事务划分,异常处理,日志记录.在最近的18个月,我和一个优秀的软件开发团队一起工作,开发定制基于WEB的供应链管理应用程序.我们的应用程序访问广泛的持久层数据,包括出货...

    jdbc在DAO层实现事务

    自己写的一个java示例 该示例用jdbc与java事务来实现...该示例包含了一个方便调用的数据库访问工具类,该工具类实现了调用SQL语句,调用PreparedStatement对象,并对可能产生的异常进行了处理,保证了各DAO子类调用的简便性

    spring4.3.2参考文档(英文)

    Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接...

    SpringBoot全局错误处理的两种方式:注解法和覆盖路径法

    对于系统中的异常处理是一个大问题,需要考虑几个问题,文后回答 代码中的异常什么时候该抛,什么时候该捕获 系统内部的异常应该在什么位置捕获,controller,service还是dao层 异常应该怎么处理,捕获到异常后应该...

    本科毕业设计+基于Springboot+JPA+semantic开发的个人博客系统

    项目知识详解: 整体项目基于springboot框架开发 数据库采用了mysql 以及 JPA 实现对数据库的链接 ...依次是javabean,配置类,contrler层,dao层,实体类,异常定义,异常处理,拦截类,service层,工具类

    基于Spring Boot的SSMP整合案例

    实体类开发——使用Lombok快速制作实体类 Dao开发——整合MyBatisPlus,制作数据层测试类 Service开发——基于MyBatisPlus进行增量...项目异常处理 按条件查询——页面功能调整、Controller修正功能、Service修正功能

    第24次课-1 Spring与Hibernate的整合

    为了更好地与持久层框架整合,Spring还提供了统一的异常处理体系和事务管理方法。 24.1 概述 24.1.1 概述 如果Spring与Hibernate进行了整合,则Hibernate便处于被Spring管理的状态下,Hibernate所需的基础资源,都由...

    CloudStack二次开发帮助文档

    CLOUDSTACK中使用SPRING 17 6.1. CLOUDSTACK组件 18 6.2. 如何声明一个CLOUDSTACK组件 19 6.3. AUTO-WIRING 19 6.4. CLOUDSTACK SPRING组件的编码约定 20 6.4.1. 注意自动注入的时间 20 6.4.2. 公用构造器 20 6.4.3...

    Spring3.x_Struts2.x_Hibernate3.x整合之声明式事务配置

    事务声明在Dao中,但是通常都会在Service中来处理多个业务逻辑的关系,如:删除,更新等,此时如果在执行了一个步骤之后抛出抛出异常就会导致数据部完整,所以事务不应该在Dao中处理,而应该在Service中处理,这也是...

    Java一键生成代码到controller层【源码】

    适合人群 1、具备一定Java编程基础。 2、对springboot,spring,mybatis,mybatis ...4、本项目集成了spring,aop,mybatis plus,swagger2,异常处理,分页,freemarker等多种技术。 5、操作手册参见项目中的README.md文件

Global site tag (gtag.js) - Google Analytics