Go语言的错误处理机制:defer+recover
Go语言中没有使用java中的try catch机制,他们可能觉得java的异常处理比较繁琐。
Go语言的异常处理机制相对简洁和优雅,使用defer+recover的机制来处理异常。
defer 后的语句先不执行,先压到栈里,然后再后进先出的顺序执行;
recover 是Go语言的内置函数,可以捕获Go语言执行中抛出的异常信息。
参考代码:
package main
import "fmt"
func main() {
test()
fmt.Println("===1===除法操作执行成功")
fmt.Println("===2===继续执行后面的逻辑")
}
func test(){
// defer后面加上匿名函数的调用
defer func(){
err := recover()
// 如果没有捕获到异常,返回值为空:nil
if err !=nil {
fmt.Println("异常信息已经捕获")
fmt.Println("错误信息为:", err)
}
}()
num1 := 10
num2 := 0
result := num1 / num2
fmt.Println(result)
}