2007-08-16
Web开发中异常处理
关键字: java web exceptionWeb分层开发,各层间的异常该如何处理呢(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中具体的方法,并导向用户失败的提示信息或页面。
- 浏览: 63528 次
- 性别:

- 来自: Da Lian

- 详细资料
搜索本博客
最新评论
-
Oracle的rownum原理和使用
照这么看来,rownum 就是一个游标,而且只能前进,不能后退的游标啦```~~ ...
-- by lovinchan -
游戏,平时彻底地放弃
深有同感 ,一起勉励自己吧
-- by hyj1254 -
避免在Java中使用Checked ...
的确是这样,在某些情况下,我的确觉得checked Exception用起来很麻 ...
-- by ivonxiao -
Documentum notes accumul ...
最近也在搞Documentum,觉得这个内容管理器的功能确实比较强大,但是界面也 ...
-- by woshifeng9th -
Oracle的rownum原理和使用
order by name 如果name是pk或有index ,查询出来的row ...
-- by seasar






评论排行榜