go多协程并发错误处理

在Go中我通过我用panic和recover来抛出错误和捕获错误,并且在全局统一处理。但是在子协程中出现错误会导致整个程序GG,我们需要为某个子协程单独recover处理,例如

// 开启协程
go func() {
	// 处理错误
	defer func() {
		if err := recover(); err != nil {
			ToolsWarn.WarnNotice(err)
			wg.Done()
		}
	}()

	// 保存数据
	m.saveToDbData(productItem, &mutex)

	// 协程计数-1
	wg.Done()
}()
访客
邮箱
网址

Top