array(2) { ["docs"]=> array(0) { } ["count"]=> int(0) } 111string(0) "" int(1) int(10) int(70) int(8640000) string(13) "likecs_art_db" array(1) { ["query"]=> array(1) { ["match_all"]=> object(stdClass)#31 (0) { } } } array(1) { ["createtime.keyword"]=> array(1) { ["order"]=> string(4) "desc" } } int(10) int(0) int(8640000) array(2) { ["docs"]=> array(0) { } ["count"]=> int(0) } go 查找解决 runtime error: invalid memory address or nil pointer dereference 的问题 - 爱码网

背景

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

runtime error: invalid memory address or nil pointer dereference

  

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

 

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

 

 

go 查找解决 runtime error: invalid memory address or nil pointer dereference 的问题

 

 

 

 

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

 

go 查找解决 runtime error: invalid memory address or nil pointer dereference 的问题

 

 

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

 

go 查找解决 runtime error: invalid memory address or nil pointer dereference 的问题

 

 

 

 

经常错误的地方:

 

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

 

相关文章: