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)
 }
posted @ 2024-05-11 17:01  勇敢-的心  阅读(3)  评论(0编辑  收藏  举报