请求创建账户的接口错

来源:5-21 资金账户-转账web接口编程实践

潇洒哥gogo

2020-06-07

http://img.mukewang.com/szimg/5edc80b5093e04bb33940664.jpg

老师,您好!

请求创建账户接口的时候报这个,是什么情况造成的?可以加一个您的微信吗?

学习过程中遇到各种各样的问题,比如包拉不下来,https://goproxy.cn/github.com/rifflock/lfshook/@v/list

希望学习的过程中不要被这种依赖的总是给耽误太长的时间

http://img1.sycdn.imooc.com/szimg/5edc813e09ef174021421274.jpg

写回答

1回答

枫荇

2020-06-09

同学!你好!

包拉不下来的问题可以尝试使用多个代理和直连来解决:GOPROXY=https://goproxy.cn,https://mirrors.aliyun.com/goproxy,https://goproxy.io,direct

另外,学习golang任何人都要面对某些包在某些时候下载失败或者超时的问题,这是客观存在的问题,在遇到这些问题时首先要冷静,检查错误信息,根据错误信息进行排查和尝试已知的方法,如果还是不行再尝试使用百度和谷歌进行问题搜索,注意关键字。


基本解决的思路:

  1. 系统库和谷歌官方库:可以采用代理和包替换(replace)的方式。

  2. 其他库:使用代理,建议采用多个国内代理,也可以添加国外代理作为备份,最终一定要有直连。


在学习过程中,一定会遇到这样那样的问题,一定不会一帆风顺,遇到问题越多的同学,如果把这些问题解决了,其能力提升会越快也越高。同样,编程过程中,出现问题是客观存在的,每个coder都要面对的问题。

常见问题的排查思路:

  1. 看发生了什么?

  2. 提示的信息是什么?

  3. 问题是业务逻辑达不到预期出现的还是代码出错出现的?

  4. 查看后台日志,看出错时后台输出的日志内容,检查日志中是否有错误信息?PS:这也是合适的地方输出不同级别日志的重要性

就同学的这个问题来说:

前段:API调用中提示`Inner Server Error`,从信息上看是服务器内部错误,这个时候同时查看一下返回的状态码是否为50x。

后端日志中提示:空指针错误,同时再空指针错误之前有一行warn级别的错误,看错误信息//img1.sycdn.imooc.com/szimg/5edf26bc09ab49c605140048.jpg

从错误信息中可以看到,是web框架中提示的,并且是recover住的,那么说明是自己的web部分的程序出错了,继续看//img.mukewang.com/szimg/5edf2706091072c905140042.jpg

可以看到是出错代码的函数。

但由于同学没有把出错的堆栈信息截图放出来,所以这里很难确定是那行代码或者说哪个变量出现了空指针错误。

从代码中看:

//img.mukewang.com/szimg/5edf27e409ea035e15301192.jpg

如果是第78行`r.Code = base.ResCodeInnerServerError`出错,应该会有第80行错误日志输出:`logrus.Error(err)`。

同学的代码中没有错误日志输出,可以断定应该不是这一行代码出错,那么我们再看一遍代码,看看那些地方可能会发生空指针异常呢?整个函数中,最可能发生空指针异常的就是第76行中a.service,`dto, err := a.service.CreateAccount(account)
`

如果a.service没有正确赋值,那么一定会出现空指针异常,并且这个空指针异常会被iris框架recover住的。


所以,同学请检查一下,a.service是否正确被赋值。

//img1.sycdn.imooc.com/szimg/5edf28fb0959a8f816960450.jpg


0
0

仿微信抢红包 Golang实战多版本抢红包系统

Golang红包系统单体版+并发版+分布式+微服务版,四大金装版、超值必修课

582 学习 · 159 问题

查看课程