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 @   勇敢-的心  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
历史上的今天:
2018-05-11 Spring cloud开发的微服务部署到Linux上内存过高的问题
点击右上角即可分享
微信分享提示