,不会再执行try块中的return语句
捕获异常与抛出异常必须完全匹配,或者是抛异常的父类
方法的返回值可以为null,不强制返回空集合或者空对象等,必须添加注释充分说明什么情况下会返回null值...即使调用方法返回空集合或者空对象,对于调用者来说,必须考虑到远程调用失败,序列化失败,运行时异常等返回null的场景
一定要防止出现NPE异常,注意NPE产生的场景:
返回类型为基本数据类型,return...包装数据类型的对象时, 自动拆箱有可能产生NPE
数据库的查询结果可能为null
集合里的元素即使isNotEmpty, 取出的数据元素也可能为null
远程调用返回对象时,一律要进行空指针判断,防止NPE...对于Session中获取的数据,建议进行NPE检查,避免空指针
级联调用obj.getA().getB.getC(), 一连串的调用,容易产生NPE
JDK 8使用Optional类来防止NPE问题...或者组件化
一个类中有多个public方法,都需要进行数行相同的参数校验工作,这个时候就要进行抽取:
private boolean checkParam(DTO dto) {...}