func test(){
//使用defer + recover来捕获和处理异常
defer func(){
err :=recover()//recover是一个内置函数可以捕获到异常
if err != nil{ //if前面可以有一个语句,第二种写法:if err:=recover();err != nil
fmt.Println("err=",err)
//这里可以加一段代码 发送给管理员
fmt.Println("发送给管理员来处理")
}
}() //匿名函数可以直接在函数体的后面加()来调用自己。defer是压入到栈中的,在函数结束后使用。
num1 := 10
num2 := 0
res := num1 / num2
fmt.Println("res=",res)
}
1.首先定义一个匿名函数存入到defer栈中,在函数结束的时候或者函数不能运行的时候可以调用defer。
2.匿名函数中使用recover()内置函数来捕获错误,用err来接受错误。
3.如果err不等于nil了就说明捕获到了错误,可以进行错误处理。
进行错误的捕获
于 2022-03-04 16:20:17 首次发布