Go入门指南系列-XVIII-VI-函数

如何使用内建函数 recover() 终止 panic() 过程(参考章节 13.3):

1
2
3
4
5
6
7
8
9
10
11
func protect(g func()) {
defer func() {
log.Println("done")
// Println executes normally even if there is a panic
if x := recover(); x != nil {
log.Printf("run time panic: %v", x)
}
}()
log.Println("start")
g()
}

链接