首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

2.基于Spring的错误体系架构处理

2012-12-16 
2.基于Spring的异常体系架构处理1.Spring的DAO异常体系Spring在DAO层建立了一套面向DAO层统一的异常体系,

2.基于Spring的异常体系架构处理

1.Spring的DAO异常体系

Spring在DAO层建立了一套面向DAO层统一的异常体系,同时将各种访问数据的检查型异常转换为非检查型异常,为整合各种持久层框架(spring JDBC,Hibernate,ibatis)提供基础。


2.基于Spring的错误体系架构处理
?Spring将DAO层进行了封装,形成统一的异常体系架构,其基类为DataAccessException。

2、基于spring的JEE体系架构异常处理方案

????? 程序中对于异常的处理,应遵循一个原则,那就是能处理的异常要处理,不能处理的异常要抛出去,二不能隐藏或遗漏异常的处理。同时,针对抛出的异常,我们应根据类型分为应用异常和系统异常。

????? 应用异常是由于违反相关的业务逻辑而导致的错误。该错误不是致命的错误,可把错误信息报告给用户,来提醒用户,用户可通过重新操作来完成预期的业务。针对应用系统异常,应划分更详细的子异常,以满足业务的需要才是有意义的。

????? 系统异常是程序系统发生的bug错误或出现的致命错误,此时必须终止服务,抛出错误。即使用户再重复操作,也不能完成业务将受限,是后台管理员关注的。

????? 针对这种情况,我们可以定义如下的异常:
2.基于Spring的错误体系架构处理
?(1)数据层异常

???? spring框架提供了统一的DAO异常处理架构,其基类为DataAccessException。分析下数据库的操作和抛出的DataAccessException子类,以区分哪些是应用异常,哪些是系统异常。

????? 插入操作:应抛出DuplicateKeyException(应用异常)和DataAccessException(系统异常)。

????? 查询操作:findbyPrimarykey 应抛出ObjectNotFoundException(应用异常)和DataAccessException(系统异常)。count应抛出DataAccessException(系统异常)。

????? 更新操作:应抛出ObjectNotFoundException(应用异常)DuplicateKeyException(应用异常)和DataAccessException(系统异常)。

????? 删除操作:应抛出ObjectNotFoundException(应用异常)和DataAccessException(系统异常)。

spring的DAO层异常架构将异常统一为非检查异常。我们在DAO层的代码中可以将上述的异常抛出,也可以不做异常处理,但在业务层的处理中必须将这些异常捕获出来转换为我们定义的应用异常和系统异常。

????? 下面的代码都可以接受:

<error-page><error-code>403</error-code><location>/WEB-INF/pages/error/403.jsp</location></error-page><error-page><error-code>404</error-code><location>/WEB-INF/pages/error/404.jsp</location></error-page><error-page><error-code>405</error-code><location>/WEB-INF/pages/error/405.jsp</location></error-page><error-page><error-code>500</error-code><location>/WEB-INF/pages/error/500.jsp</location></error-page></web-app>

?2、在dispatch对应的MVC xml配置如下

<!--启动Spring MVC的注解功能,设置编码方式,防止乱码-->    <bean   p:prefix="/WEB-INF/pages/"  p:suffix=".jsp" /></beans>
?

?

?

热点排行