【转】应用中的异常处理(业务异常,非业务异常)

1.业务异常:指正常的业务处理时,由于某些业务的特殊要求而导致处理不能继续所抛出的异常。

   处理原则:在业务层或者业务的处理方法中抛出异常,在表示层中拦截异常,以友好的方式反馈给操作者,以便可以依据提示信息正确的完成任务功能的处理。

2.非业务异常:非正常工作情况下所产生的异常。

处理原则:在应用的框架中同意拦截和处理,在开发中不需要进行任何处理。

3.。业务异常的设计。

1)结构上划分为3个层次。第一层:异常基类。第二层:功能层或者模块层。第三层:业务异常层。

2)基类的构建:通常会定义一个继承自RuntimeException的基类,这样对于业务异常就可以在运行时由系统的框架进行捕获。接着为每个层次定义一个基类,最后为每个业务异常定义一个业务对象。另外为了减少异常对象的数量,在这一层也可以采用错误代码的设计方式,使得顶层的拦截程序可以依据错误代码来得到相应的错误信息。

4.在servlet容器里处理异常。

1)配置web.xml捕获异常。

<error-page>

     <error-code>404</error-code>

     <location>/error.jsp</location>

</error-page>

<error-page>

     <exception-type>javax.servlet.ServletException</exception-type>

     <location>/error.jsp</location>

</error-page>

2)在jsp页面中使用errorPage属性进行拦截。

5.struts的异常处理机制。

1)异常的配置,

配置<exception/>。属性介绍

type:指定被处理的异常类。

handler:指定异常处理类。默认org.apache.struts.action.ExcetionHandler,可以进行扩展。

path:指定捕获异常并进行处理后返回的地址,可以是页面,也可以是某个action。

key:指定错误消息的key。

bundle:错误信息绑定的资源文件。

scope:指定ActionMessage对象存放的范围。默认是request,也可以是session。

方式介绍

全局:在<global-exception><exception/></global-exception>中配置。

局部:在<action><exception/></action>中配置

2)异常信息的显示

方法和错误信息的显示相同。<html:errors></html:errors>

3)定义自己的异常处理类

继承ExceptionHandler,实现自己的异常处理类。

覆盖execute()方法,实现自己的异常处理方法。

将<exception/>元素中的handler属性配置为自定义的异常处理类。

6.利用扩展Action处理异常。

覆盖execute()方法。在异常捕获中实现自己的处理异常的方法。

转自http://hi.baidu.com/zj_ly520/blog/item/8175d61f4f8ac467f624e4d8.html

要求编写程序模拟银行账户的存、取款操作。按要求完成以下步骤: 步骤1:编写程序Account.java,其定义银行账户类Account。该类有账号、姓名、 存款余额等数据域,余额默认是0;有存款、取款、获取当前余额等方法。其账号为长度 为12位数字的字符串,姓名为字符串,存款余额为double。 步骤2:编写名为CreditAccount类的信用卡账户类。该类继承自Account类,增加一 个透支限额(double)数据域,透支限额默认为1000。同时该类账户取款时允许透支,但不 能超过透支限额。 步骤3:编写名为SavingAccount的储蓄账户类SavingAccount。该类继承自Account 类。该类账户取款时不允许透支。 步骤4:编写名为Bank的模拟银行类,其可以存储多个类型可能是信用卡账户或储 蓄账户的对象(可以用数组或ArrayList实现)。该类包含以下方法: 开户:即增加一个新的账户,注意:不允许两个账户的账号相同 销户:即删除一个已有的账户 查询账户:根据一个账号,查询有无该账号的账户 统计目前银行的存款总余额的方法。 统计目前银行的信用卡账户总透支金额的方法。 统计目前总账户数。 统计目前信用卡账户数 统计目前储蓄卡账户数 步骤5:编写客户端类Client.java完成以下功能: 编写一个静态方法,创建一个银行对象,并随机生成10个账号从1000 0000 0000 0000到1000 0000 0000 0009,类型不同的账户。 main方法模拟几次开户操作。 main方法模拟几次销户操作。 模拟几个对指定账号的存款和取款操作。 输出银行的总账户数、总余额、总透支数、各类具体账户数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值