异常不要用来做流程控制、条件控制,因为异常的处理效率比条件分支低。
//正例 if(obj!=null){ ... } //反例 try{ obj.method() }catch(NullPointException e){ ... }
- 对大段代码进行try/catch,这是不负责任的表现。请分清稳定代码和非稳定代码。
- 捕获代码是为了处理它,如果不想处理它,请把该异常抛给它的调用者。最外层的业务处理者,必须处理异常,并将其转化为用户可以理解的内容。
- 避免直接抛出new RuntimeException(),更不允许抛出Exception或者Throwable,应该用有业务含义的自定义异常。推荐业界已定义过的自定义异常,如:DAOException、ServiceException等。
- 避免出现重复的代码(Don’t Repeat Youself),即DRY原则。必要时抽取公共方法,或者抽象公共类,甚至是组件化。
alibabaJava开发手册之异常处理
最后更新时间:
这里可以写作者留言,标签和 hexo 中所有变量及辅助函数等均可调用,示例:http://47.107.237.149/2019/04/30/alibabaJava开发手册之异常处理/