18.6 函数

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

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

链接