天道不一定酬所有勤
但是,天道只酬勤

异常处理的 15 个处理原则

GitHub 17k Star 的Java工程师成神之路,不来了解一下吗!

1、不用使用异常来管理业务逻辑,应该使用条件语句。如果一个控制逻辑可通过 if-else 语句来简单完成的,那就不用使用异常,因为异常会降低代码的可读性和性能,例如一些 null 的判断逻辑、除0的控制等等;

2、异常的名字必须清晰而且有具体的意思,表示异常发生的问题,例如 FileNotFoundException 就很清晰直观

3、当方法判断出错该返回时应该抛出异常,而不是返回一些错误值,因为错误值难以理解而且不够直观,例如抛出 FileNotFoundException 异常,而不是返回 -1 或者 -2 之类的错误值。

4、应该捕获指定的异常,而不是 catch(Exception e) 了事,这对性能、代码的可读性以及诸多方面都有好处

5、Null 的判断逻辑并不是一成不变的,当方法允许返回 null 的时候使用 if-else 控制逻辑,否则就抛出 NullPointerException

6、尽量不要二次抛出异常,如果非得这么做的话,抛出同一个异常示例,而不是重新构建一个异常对象,这对性能是有帮助的,而且外层调用者可获取真实的异常信息

7、定义你自己的异常类层次,例如 UserException 和 SystemException 分别代表用户级别的异常信息和系统级别的异常信息,而其他的异常在这两个基类上进行扩展

8、明确的使用不同的异常类型:

Fatal: System crash states. 
Error: Lack of requirement. 
Warn: Not an error but error probability. 
Info: Info for user. 
Debug: Info for developer. 

9、不要仅仅捕获异常而不做任何处理,不便于将来维护

10、不要多次重复记录同一个异常,这可以让我们清晰的了解异常发生的位置

11、请使用 finally 来释放一些打开的资源,例如打开的文件、数据库连接等等

12、大部分情况下不建议在循环中进行异常处理,应该在循环外对异常进行捕获处理

13、异常的粒度很重要,应该为一个基本操作定义一个 try-catch 块,不要为了简便,将几百行代码放到一个 try-catch 块中

14、为你的异常生成足够的文档说明,至少是 JavaDoc

15、为每个异常消息定义一个数值,这对好的文档来说是非常重要的。

赞(8)
如未加特殊说明,此网站文章均为原创,转载必须注明出处。HollisChuang's Blog » 异常处理的 15 个处理原则
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

HollisChuang's Blog

联系我关于我