首页 > 技术文章 > go 查找解决 runtime error: invalid memory address or nil pointer dereference 的问题

zexin88 2021-09-18 14:49 原文

背景

接口出现异常,发现这个错误

runtime error: invalid memory address or nil pointer dereference

  

原有: 指针变量为空,此时访问指针变量的成员,就会出现这个问题。

 

下面一个测试的错误再现demo, 当然我们平常开发的时候,错误不会这么明显,但本质是一样的,只要看下面报错信息部分,就可以迅速定位到问题所在

 

 

 

 

 

 

只有标记的这部分是和自己代码比较相关的,每个蓝色的错误连接都可以点击进去看到错误处的源码,

 

 

 

显然我们就已经找到了问题的出现地方,就是 这个部分,res 本身是一个空指针,然后访问空指针的内部成员,就出现panic 错误。

 

 

 

 

 

经常错误的地方:

 

通常  指针变量没有完成初始化 就调用对象方法 或者访问对象成员变量,就会出现这个问题,平常检查代码是否有类似现象,

 

推荐阅读