异常处理

前几天和一个同事负责对公司网银产品中异常处理进行重新整理,原有的异常处理采用的是出现异常就将错误信息,位置及错误代码存放在session中,这样在程序流程不会因为一个异常的出现就被完全打断,本来这样的想法是非常好的,但在具体执行过程中许多地方在出现异常后没有按照正常的程序将异常记录下来,而是直接往调用类中抛出,而一旦调用类中也是同样的抛出而没有进行捕获记录的话,则该异常在外层被捕获后它的位置的确定就只能通过stack来查找了,更有时候由于系统是在一个基础引擎下二次开发完成的,二次开发代码和引擎中处理异常有差别,如果二次开发代码中的异常在该部分中没有被捕捉到而进入引擎中,则会丢失,虽然这是引擎设计上的问题,但由于基础引擎是不能随便修改的,这样就需要,我们在二次开发中出现的异常不能进入引擎处理。

我们解决这个问题的过程如下:首先将异常分类,异常分为程序异常和功能异常,程序异常就是程序中出现的不确定异常,这种异常是面向程序员的,如果在生产环境下出现必须想办法向用户屏蔽,这种异常出现后必须显示详细的错误信息,位置及stack,以便程序员能快速的找到问题;而功能异常则是面向用户的,是用户在操作过程种由于种种原因导致操作失败,如用户在进行转帐时,提交的转帐金额超过了指定转出帐户的余额,这时需要在程序中主动生成一个异常并保存在session中,程序流程继续往下走,并且能导向错误页面,在页面处理过程中从session中取出异常信息,这些信息不需要很复杂,只需要告诉用户操作失败的原因就行,在我们的系统中,出现功能异常时只记录了错误代码,而有专门的文件存放错误代码和错误信息;

其次在二次开发代码和引擎代码的边界处,将二次代码中可能出现的所有异常都拦截住。

ibm的网站上找到篇关于异常处理方面的好文章,引用在此:
http://www-900.ibm.com/developerWorks/cn/java/j-merlin/index8.shtml

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值