比如,我在数据访问层出现了异常,该如何处理?1,在本层内解决掉?2,抛给上层?
又比如,在业务逻辑层出现异常?又该如何处理?

解决方案 »

  1.   

    这个问题本质上是你对异常管理的规划问题,范围有点广。一般来说,异常会一直向上抛(该过程中可能层层封装),直到某层能够处理该异常。处理不代表解决该异常,只是说到此不再上抛该异常了,如果你使用的是MVC架构的话,那么往往是控制器(Controler)捕捉到该异常后,将页面重定向到异常提示信息的页面,在该JSP页面中显示错误信息,如:“执行数据插入时检测到主键冲突在TABLE的XXOO上。”稍好的做法是,你有异常对照表,将该异常能够对照为用户能够理解的意思,比如:“您想使用的注册账户名称已经存在,请输入一个新的注册账户。”
      

  2.   

    二楼解释的完全正确你可以在DAO层捕获异常,记录日志,封装成自定义异常抛到Controler层,给用户返回具体错误信息或错误页面