1
lsk569937453 OP 线上问题比例子代码复杂的多的多,所以从源码入手猜哪一行代码出错,很难。
|
2
Maboroshii 2019-11-26 19:56:56 +08:00
盲猜 recover 的地方有问题
|
3
Reficul 2019-11-26 20:18:21 +08:00
空指针上执行方法不会 Hang 住,对指针解引用会 Panic 也不会 Hang 住。说卡在 print 的,是看到的还是猜的,建议 dlv 上去看堆栈信息。
|
4
lsk569937453 OP @Reficul 是本地调试的,走到 srcDbresult.Next()这个就走不下去了,panic 没走到都。说 hang 住是因为进程还在,端口也在占用,telnet 端口无返回,无法处理请求也
|
5
iamfirst 2019-11-26 20:53:11 +08:00
srcDbresult.Next(), 是指读取记录下一条?如果查询时 err != nil,还强行读不存在的记录,然后报错?
|
6
TheCure 2019-11-26 20:58:44 +08:00
...正确的方法是 runtime stack trace, 看到底看看卡在那里
|
7
8kFT2l6aoU9566Bg 2019-11-26 20:58:44 +08:00
弱弱的问一句,调用空指针的方法不会 panic 吗,随后就 recover 了吧,还有 print 什么事?
|
8
8kFT2l6aoU9566Bg 2019-11-26 21:06:47 +08:00
@winterssy #7 错了,要看具体的业务逻辑
|
9
blless 2019-11-26 22:40:35 +08:00 via Android
……为啥要打印 Next 不是直接 return 或者 panic 就好?
|