异常处理
一 有try块放到了事务代码中,catch异常后,如果需要回滚事务,一定要注意手动回滚事务。
二 不要在finally块中使用return
说明 finally块中的return返回后方法结束执行,不会再执行try块中的return语句
三 防止NPE,是程序员的基本修养,注意NPE产生的场景:
说明
- 返回类型为基本数据类型,return 包装数据类型的对象时,自动拆箱有可能产生NPE。例如: public int f() {return Integer 对象},如果为null 自动拆箱抛NPE。
- 数据库查询结果可能为null
- 集合里的元素即使isNotEmpty,取出的数据元素也可能为null
- 远程调用返回对象时,一律要求进行空指针判断,防止NPE
- 对于Session中获取的数据,建议NPE检查,避免空指针
- 级联调用obj.get().getB().getC(),一连串调用,易产生NPE
建议:使用jdk8的Optional类来防止NPE问题