基于J2EE轻量级容器构件框架:异常处理

Java 提供了两类主要的异常 :runtime exceptionchecked exception 。所有的 checked exception 是从 java.lang.Exception 类衍生出来的,而 runtime exception 则是从 Java.lang.RuntimeExceptionjava.lang.Error 类衍生出来的。

从逻辑的角度来说, checked exceptionsruntime exception 是有不同的使用目的的。 checked exception 用来指示一种调用方能够直接处理的异常情况。而 runtime exception 则用来指示一种调用方本身无法处理或恢复的程序错误。

框架定义了一个异常基类 ApplicationException 是属于 checked exceptions 类型主要有以下几个功能:

1、            异常自底向上抛出统一处理,减少处理代码:

传统(过程式)方式编程,采用返回参数告诉调用的函数被调用的函数出现错误,所以在调用函数里面要加入很多的 if 从句来判断各个被调用函数是否正确返回值,代码充斥了大量的大括号。采用异常机制,发生异常的位置包装成自定义的应用异常然后向上抛出,上面的各层均不用处理直接抛出到统一异常处理的 MainController 里面即可,由统一的类来处理

2、          异常统一编号,用户看到统一的处理信息:

每个异常都可以确定编号,并将编号与提示信息维护在数据库中,页面只显示统一维护的错误信息,这样就不会让错误信息编程开发人员随手写的不规范而且难以理解的信息,造成用户感觉系统难以使用。

3、            异常信息记录到错误日志中方便追踪异常位置:

统一处理程序抓取异常,并将异常信息记录日志。调试阶段还可以在控制台信息中打出异常堆,方便开发人员快速定位异常发生位置。

4、            根据获取异常 AOP 声明式事务控制进行回滚操作:

整个开发使用声明式的事务,何时回滚就取决与应用异常的抛出。

配置如下:

<property name="transactionAttributes">

                     <props>

                            <prop key="insert*">

                                   PROPAGATION_REQUIRED,-ApplicationException

                            </prop>

                     </props>

</property>

应用异常基类如下图:


file:///C:/Documents%20and%20Settings/Administrator/%E6%A1%8C%E9%9D%A2/ssh%E4%B8%AD%E5%BC%82%E5%B8%B8%E7%9A%84%E5%A4%84%E7%90%86/%E5%9F%BA%E4%BA%8EJ2EE%E8%BD%BB%E9%87%8F%E7%BA%A7%E5%AE%B9%E5%99%A8%E6%9E%84%E4%BB%B6%E6%A1%86%E6%9E%B6%E5%9B%9B%E3%80%81%E5%BC%82%E5%B8%B8%E5%A4%84%E7%90%86_files/a.bmp

 

其它异常都继承于基类 ApplicationException ,主要包含错误编号属性( errorNumber )、异常信息( errorMessage )、异常跟踪 (stackTrace) 。以便实现上述功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值