瀏覽代碼

防止处理消息的方法异常panic

wuroy.eth 1 月之前
父節點
當前提交
e92817b8a8
共有 1 個文件被更改,包括 6 次插入0 次删除
  1. 6 0
      internal/pkg/wechat_ws/wechat_ws_client.go

+ 6 - 0
internal/pkg/wechat_ws/wechat_ws_client.go

@@ -232,6 +232,12 @@ func (c *WechatWsClient) ReadPump() {
 				for _, handler := range c.MessageHandler {
 					// todo 重启时这里会丢消息,回头需要用wg来进行平滑处理
 					go func() {
+						defer func() {
+							// 捕获panic, 防止程序崩溃
+							if r := recover(); r != nil {
+								logx.Error("Recovered in f", r)
+							}
+						}()
 						err = handler(&msg)
 						if err != nil {
 							logx.Error(err)