排查1

当查询不到数据时,item变量为nil,此时会触发BUG

exception recovered: runtime error: invalid memory address or nil pointer dereference

其中的resourceV1.GetTemplateRes结构体的定义如下:

将代码改为如下即可解决问题,相当于增加了一个if判断:

排查2

经过进一步排查,发现根因在这里:

因为返回的resourceV1.GetTemplateRes结构体中嵌套了一个指针结构体,并且这个指针结构体的属性是nil,那么在外层直接使用template.TemplateId访问时,其实是想要访问resourceV1.GetTemplateRes中嵌套的指针结构体*entity.ResourceParamTemplate中的TemplateId属性。但是这个时候该属性*entity.ResourceParamTemplatenil,那么直接访问它的属性TemplateId则会报空指针问题。




  • No labels