恢復(fù)用于從緊急情況或錯(cuò)誤情況中重新獲得對(duì)程序的控制。它停止終止序列并恢復(fù)正常執(zhí)行。從延遲函數(shù)中調(diào)用。它檢索通過panic調(diào)用傳遞的錯(cuò)誤值。通常,它返回nil,沒有其他效果。
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