在调试go程序的过程中,可能会出现重复关闭chan的情况,可能会有多个路径执行关闭操作,为了确定操作路径可以使用runtime/debug
包中的PrintStack()
打印堆栈,最后确定具体的执行路径。参考代码如下[1]:
package main
import (
"runtime/debug"
)
func main() {
defer func() {
if err := recover(); err != nil {
debug.PrintStack()
}
}()
value := 111
zero := 0
value = value / zero
}
有疑问加站长微信联系(非本文作者)