《阿里开发手册》读书笔记(六)

3. 3. 【强制】对大段代码进行 try - catch ,这是不负责任的表现。 catch 时请分清稳定代码和非稳
定代码,稳定代码指的是无论如何不会出错的代码。对于非稳定代码的
catch 尽可能进行区分
异常类型,再做对应的异常处理。


44. 【强制】捕获异常是为了处理它,不要捕获了却什么都不处理而抛弃之,如果不想处理它,请
将该异常抛给它的调用者。最外层的业务使用者,必须处理异常,将其转化为用户可以理解的
内容。


5.5. 【强制】有 try 块放到了事务代码中, catch 异常后,如果需要回滚事务,一定要注意手动回
滚事务。


6.6. 【强制】 finally 块必须对资源对象、流对象进行关闭,有异常也要做 try-catch
说明: 如果 JDK7,可以使用 try-with-resources 方式。


7.7. 【强制】不能在 finally 块中使用 returnfinally 块中的 return 返回后方法结束执行,不
会再执行
try 块中的 return 语句。


8.8. 【强制】捕获异常与抛异常,必须是完全匹配,或者捕获异常是抛异常的父类。
说明: 如果预期对方抛的是绣球,实际接到的是铅球,就会产生意外情况。


9.9. 【推荐】方法的返回值可以为 null,不强制返回空集合,或者空对象等,必须添加注释充分
说明什么情况下会返回
null 值。调用方需要进行 null 判断防止 NPE 问题。
说明: 本规约明确防止 NPE 是调用者的责任。即使被调用方法返回空集合或者空对象,对调用
者来说,也并非高枕无忧,必须考虑到远程调用失败,运行时异常等场景返回
null 的情况


10.10. 【推荐】防止 NPE,是程序员的基本修养,注意 NPE 产生的场景:
1返回类型为包装数据类型,有可能是 null,返回 int 值时注意判空。
反例: public int f(){ return Integer 对象}; 如果为 null,自动解箱抛 NPE
2数据库的查询结果可能为 null
3集合里的元素即使 isNotEmpty,取出的数据元素也可能为 null
阿里巴巴 Java 开发手册
——禁止用于商业用途,违者必究—— 20 / 34
4远程调用返回对象,一律要求进行 NPE 判断。
5对于 Session 中获取的数据,建议 NPE 检查,避免空指针。
6级联调用 obj.getA().getB().getC()一连串调用,易产生 NPE



猜你喜欢

转载自blog.csdn.net/weixin_36997847/article/details/80051683