recover 必须在 defer 函数中运行。recover 捕获的是祖父级调用时的异常,直接调用时无效。

func main() {
    recover()
    panic(1)
}

直接 defer 调用也是无效。

func main() {
    defer recover()
    panic(1)
}

defer 调用时多层嵌套依然无效。

func main() {
    defer func() {
        func() { recover() }()
    }()
    panic(1)
}

必须在 defer 函数中直接调用才有效。

func main() {
    defer func() {
        recover()
    }()
    panic(1)
}

相关文章:

  • 2022-01-31
  • 2022-12-23
  • 2021-10-29
  • 2022-12-23
  • 2022-02-07
  • 2022-12-23
  • 2021-11-25
  • 2022-01-18
猜你喜欢
  • 2022-01-03
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-15
  • 2022-12-23
  • 2021-06-23
相关资源
相似解决方案