package main import "fmt" func main(){ test() fmt.Println("上面的除法操作执行成功。。。") fmt.Println("正常执行下面的逻辑。。。") } func test(){ num1:=10 num2:=5 result:=num1/num2 fmt.Println(result) }
如果num2为5的情况下,main函数能够正常执行,如果num2为0的情况下会报错
程序中出现错误之后程序会被中断,无法继续执行。
加入defer+recover机制之后
package main import "fmt" func main() { test() fmt.Println("上面的除法操作执行成功。。。") fmt.Println("正常执行下面的逻辑。。。") } func test() { defer func() { err:=recover() if err !=nil{ fmt.Println("错误已经被捕获") fmt.Println("err是::",err) } }() num1 := 10 num2 := 0 result := num1 / num2 fmt.Println(result) }