在調試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
}