无涯教程-Go - Recover

44 阅读1分钟

恢复(Recover)用于从紧急情况或错误情况中恢复对程序的控制。它停止终止序列并恢复正常执行。从延迟(defer)函数中调用。它检索通过紧急呼叫传递的错误值。通常,它返回 nil ,没有其他效果。

Go Recover()示例

package main
import (
   "fmt"
)
func main() {
   fmt.Println(SaveDivide(10, 0))
   fmt.Println(SaveDivide(10, 10))
}
func SaveDivide(num1, num2 int) int {
   defer func() {
      fmt.Println(recover())
   }()
   quotient := num1/num2
   return quotient
}

输出:

runtime error: integer divide by zero
0
<nil>
1

参考链接

www.learnfk.com/go/go-recov…