# 18.6 函数 如何使用内建函数 `recover()` 终止 `panic()` 过程(参考[章节 13.3](13.3.md)): ```go 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() } ``` ## 链接 - [目录](directory.md) - 上一节:[接口](18.5.md) - 下一节:[文件](18.7.md)