本周项目版本迭代过程中,出现了一件之前没有遇到过的问题,升级 jar 包版本之后,线上居然报了空指针异常!!!
空指针异常这么低级的错误都能发生,实在是有损我程序员的颜面,又禁不住纳闷
毕竟也是经由测试同学测试通过的,怎么还会出现这种明显错误呢?
原来是升级的版本中 有一个实体类新增了一个 Boole 类型的成员变量并且给了默认
值,在实际引用到这个变量的地方 并没有做空判断,因为已经给了默认值所以直接拿来用了,以上在使用过程中都没有发现任何问题,在发布上线后,却发现其他引用到相应服务的对方,没有升级版本就会导致空指针异常。
猜测是在调用方在使用的过程中,因为版本没有升级所以该字段是不存在的,在序列化时自然没有该字段,反序列化时这个字段因为没有,所以反序列后的对象也是没有这个字段的。
**