关于service层、domain层及Dao层的异常处理问题

wilson751
06-12-25 1 295

最近用Struts开发web程序时,遇到一个异常处理的问题。假设有一个业务逻辑:查询某用户进行信息修改的所有的日志记录<每修改一次,在DB中生成一条记录>。在查询前,还要判断该用户是否是本系统生成的用户<有一张表记录着所有的合法用户的信息>。

终端用户的需求是:如果查询的用户不是合法用户,要求提示:“该用户不是合法用户”;如果用户没有进行过信息的修改,要求提示:“该用户没有进行过信息修改”。

在struts的action类中,可以将提示信息封装到ActionMessage中,但是,用户是否合法只能在Dao层中才能得到确定,如果用户不在合法用户表中,则可确定该用户不是合法用户。

我怎样才能将“用户不是合法用户”从Dao层,传到domain层,最后在Action中进行处理。目前我想到的方法是用Exception来处理。当用户不是合法用户时,方法就抛出一个NotExistUserException,然后在Action中进行处理。

这种情况下,大家都是怎么处理的,怎样处理才比较的合理,请各位指点下思路,多谢了!

banq
2006-12-25 15:11

关键还是需要学习一下Evans DDD.

>用户是否合法只能在Dao层中才能得到确定,如果用户不在合法用户表中,则可确定该用户不是合法用户

这其实是一个业务规则筛选的问题,一定要记住Dao层只是对象的“睡觉的床”,所以,'用户是否合法只能在Dao层中才能得到确定'这句话不够准确,应该说 所有合法用户可以从Dao层得知,但是某个用户是否合法用户需要在业务层实现。