• 轻松搞定项目中的空指针异常Caused by: java.lang.NullPointerException: null


    大家在项目测试过程中,是不是经常会碰到这个空指针异常呢Caused by: java.lang.NullPointerException: null

    当大家遇到这个问题,大家是怎么处理?自己解决还是让开发来解决

    以下是小编自己遇到的实际案例:

    查询组织详情的时候,出现系统异常

    既然出现了问题,那么就查看日志呗(学会查看日志,是定位问题的最基本的能力)

    查看代码的247行,是操作啥:

    第247行的代码是查询orgAuth.getUserMaxLimit()方法获取getUserMaxLimit

    获取接口的sql,查看哪个sql是在查询getUserMaxLimit

    通过对比发现:

    数据库中确实查询到的UserMaxLimit字段的NULL,所以后端抛出了空指针异常

    那么看一下正常的不报错的查询的结果数据:

    至此,问题已经找到了

    那么怎么解决这个问题就简单了,直接复制这个字段到存在问题的数据记录中

    INSERT INTO `debtoauth2`.`t_organization_auth` (`id`, `orgId`, `smsSwitch`, `smsMaxLimit`, `userMaxLimit`, `debtMaxLimit`, `createTime`, `updateTime`, `isOutCall`) VALUES ('1671037', '3', '0', '-1', '5', '50', '2019-09-25 17:25:57', '2019-09-25 17:25:57', '0');

    再次查看业务接口:

    问题已经解决

    其实项目环境出现报错不可怕,关键是要有自己的定位意识,环境问题,数据问题,配置问题都可能阻塞测试过程,只有掌握了问题的解决方法,以不变应万变

    其实针对这类空指针的异常定位,比较简单,如果永远不去自己排除问题,永远没有进步,依赖开发

    实际上出现空指针的时候,有可能是并发的时候出现接口查询超时,导致下面的接口参数为空,或者数据库中不存在这个字段,或者缓存没有这条记录导致的

  • 相关阅读:
    python set 使用
    python判断字符串是字母 数字 大小写
    go语言中的运算符^,&
    golang 之 flag.String
    关于Mac或Linux下GO的Permission denied提示错误
    《算法竞赛进阶指南》0x05排序 POJ3784 对顶堆动态维护中位数
    大顶堆的基本操作(线性表建堆+siftup+siftdown+insert+delete)
    《算法竞赛进阶指南》0x05排序 环形均分纸牌问题
    SublimeText3配置c/c++环境
    《算法竞赛进阶指南》0x05 排序 离散化
  • 原文地址:https://www.cnblogs.com/qmfsun/p/11596019.html
Copyright © 2020-2023  润新知