fix: 修复空指针可能导致panic的问题
panic: interface conversion: interface {} is nil, not *client.GroupSystemMessages
goroutine 31 [running]: github.com/Mrs4s/MiraiGo/client.(*QQClient).GetGroupSystemMessages(0x19919ab95fdf8?) C:/Users/atom/go/pkg/mod/github.com/!mrs4s/[email protected]/client/system_msg.go:51 +0x305
最佳的修复方法应该是:检查 sendAndWait 函数在非 err 情况下仍会返回 nil 的位置,并在此修正
最佳的修复方法应该是:检查
sendAndWait函数在非 err 情况下仍会返回 nil 的位置,并在此修正
检查中,暂时没想明白
感谢迅速的回复
最佳的修复方法应该是:检查
sendAndWait函数在非 err 情况下仍会返回 nil 的位置,并在此修正
看了内部的逻辑,但感觉问题不是出在这一层,应该再更深层?因为感觉该函数内几个 error 的判断都没有啥问题。
感觉问题源自这里的上游,但是个人能力有限,希望大佬能协助排查一下问题。
https://github.com/Mrs4s/MiraiGo/blob/5c0e2c5773de4666857ef199e56364d34819a026/client/network.go#L183
彻底解决此问题可能需要动态复现并追踪。
建议临时解决方案是直接在 Line 183 处判断 res.Response 是否为 nil,自定义 error 消息并返回,以避免 panic
目前复现有一定的难度,我暂时还未能稳定复现此问题。
这个地方应该检查相应 decode 函数的逻辑, 而不是直接在上游函数加个简单判断
啊啊 非常抱歉
请问大佬们有交流群之类的吗?