Web开发中异常处理

Web分层开发,各层间的异常该如何处理呢(Action,Service,DAO)?

一般的信息系统其本质就是对数据进行CRUD的操作,我觉得,Action展现给用户的只需两个结果,成功或失败(用户注册类的失败需给出具体失败原因,一般是通过js或javabean验证),用户对此操作所导致的提示失败的结果一般无法补救,只能改变此操作尝试其它操作。Service层是对业务逻辑的处理,根据业务逻辑调用不同的DAO的不同方法或同一DAO中的一个或多个方法,事务控制一般定义在这一层,保证业务操作的正确性(多个DAO方法在一个事务中,同成功同失败,也可以设计得更细些,例如Service中一个方法调用5个DAO中的方法,在第4个方法时出现异常,用户点击重试按钮时,成需继续从第4个方法开始,而不是重新从第一个方法开始,提高性能)。DAO主要就是对数据库进行操作(CRUD),可能会产生SQLException和其它Exception,无论是什么Exception建议都定义成unchecked exception或不处理。Spring中的事务只对unchecked exception才进行事务回滚。建议DAO中不对异常进行额外处理,在Service中也无需理会异常或者方法定义时硬throws RuntimeException(其实不需要),对异常信息的处理在Action中硬try catch。catch中记日志,记录异常的详细信息便于查找异常原因,可以追溯到DAO中具体的方法,并导向用户失败的提示信息或页面。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值