引言 在Go语言中,我们通常会用到panic和recover来抛出错误和捕获错误,这一对操作在单协程环境下我们正常用就好了,并不会踩到什么坑。但是在多协程并发环境下,我们常常会碰到以下两个问题。假设我们现在有2个协程,我们叫它们协程A和B好了: 如果协程A发生了panic,协程B是否会因为协程A的panic而挂掉? 如果协程A发生了panic,协程B是否能用recover捕获到协程A的panic? 答案分别是:会、不能。 那么下面我们来一一验证,并给出在具体的业务场景下的最佳实践。 问题一 如果协程A发生了panic,协程B是否会因为协程A的panic而挂掉? 为了验证这个问题,