一、recover只有在defer调⽤的函数中有效。
1、没有recover,发生错误不再执行
package main
import "fmt"
func Demo(i int) {
//定义10个元素的数组
var arr [10]int
arr[i] = 10
}
func main() {
Demo(10)
//产⽣错误后 程序继续
fmt.Println("程序继续执⾏...")
}

2、存在recover,发生错误继续往后执行
package main
import "fmt"
func Demo(i int) {
//定义10个元素的数组
var arr [10]int
//错误拦截要在产⽣错误前设置
defer func() {
//设置recover拦截错误信息
err := recover()
//产⽣panic异常 打印错误信息
if err != nil {
fmt.Println(err)
}
}()
//根据函数参数为数组元素赋值
//如果i的值超过数组下标 会报错误:数组下标越界
arr[i] = 10
}
func main() {
Demo(10)
//产⽣错误后 程序继续
fmt.Println("程序继续执⾏...")
}
