ssh3层架构中异常捕获的书写规范

来源:互联网 发布:python 协同过滤 编辑:程序博客网 时间:2024/06/04 23:19

问题:ssh3层架构,即action, service, dao层,当需要捕获异常的时候,一般在action用try{} catch捕获,为什么这样书写呢?

因为service层是需要给外部调用的,不局限于给action层调用,也可以通过rmi等方式给外部调用,如果在service层捕获异常的话,那其他调用该service的类则没法对异常做不同的处理,同理,dao层也一样。

做法:故常用的做法就是:dao和service层直接throws 抛给调用者,action层用try{}catch来捕获并处理。


举例:

  dao:

   public void get() throws SQLException{

     //code

  }


 service:

  public void do() throws Exception{

    dao.get()

  }


action:

public String execute(){

    try{

      service.do();

   } catch(Exception e){

     log.error(e, e);

   }

}

原创粉丝点击