在三层架构设计中应该为每一层设计自定义异常

  在web工程中,应该为每一层(web、service、dao)设计各种层的自定义异常,这样做最大的好处在于在每一层的代码中,如果系统抛出了异常,那么如果在日志中就可以根据这个异常快速定位到是在哪一层出现的错误。

  通常在工程中会创建一个异常包,这个包中封装了整个工程中所有的自定义异常,例如如果我们在Dao层中的所有类中的自定义异常都可以封装在一个DaoException类中。

  一般来讲我们自定义的异常都是运行时异常(unchecked exception,继承RuntimeException),除非我们在调用会抛出该异常的方法的上一级或几级方法中能解决该异常才会将自定义异常,不过对于一般的异常我们在上级都是无法处理的,因此选择将自定义异常定义为运行时异常。

  当然这也不是绝对的,例如在service层中对注册用户进行判断用户名是否已经存在,那么就可以抛出个UserExitException异常,而这个异常我们就可以定义为编译时异常,因为我们在web层可以对这个异常进行处理,比如捕获该异常后给用户一个友好提示。

 

 

 

      

posted @ 2016-03-13 17:01  fjdingsd  阅读(564)  评论(0编辑  收藏  举报