网络编程
位置:首页>> 网络编程>> Go语言>> 小学生也能看懂的Golang异常处理recover panic

小学生也能看懂的Golang异常处理recover panic

作者:毛毛是一只狗  发布时间:2024-02-08 20:32:36 

标签:Golang,异常处理,recover,panic

🌌 专注Golang,Python语言,云原生,人工智能领域得博主
💜 过去经历的意义在于引导你,而非定义你,
💜 只要我们足够努力,任何人都有无限潜力

小学生也能看懂的Golang异常处理recover panic

  • 🚀panic 抛出异常函数

  • 🚀recover 捕获异常函数

📣1:在一个主协成内捕获异常


package main

import (
"fmt"
)

func main(){

defer func(){
err := recover()
if err != nil{
fmt.Println("捕获到异常")
}
}()

panic("异常出现") //抛出异常,代表错误代码

}

🚀运行结果

小学生也能看懂的Golang异常处理recover panic

📣2:假设子协成内部错误,看看主协成能不能捕获到


package main

import (
"fmt"
)

func Calculate(){

panic("异常出现")  // 同样代表错误代码
}

func main(){

defer func(){
err := recover()
if err != nil{
fmt.Println("捕获到异常")
}
}()

go Calculate()

time.Sleep(time.Second*3)  //防止主协成过早退出,导致子协成没执行

}

🚀执行结果,主协成不能捕获到子协成的错误

小学生也能看懂的Golang异常处理recover panic

📣3:假设子协成错误需要自己捕获


package main

import (
"fmt"
"time"
)

func Calculate(){

defer func(){
err := recover()
if err != nil{
fmt.Println("协成内部捕获异常")
}
}()

panic("异常出现")
}

func main(){

go Calculate()

time.Sleep(time.Second*3)

}

执行结果,成功捕获异常

小学生也能看懂的Golang异常处理recover panic

来源:https://blog.csdn.net/weixin_43270713/article/details/120272891

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com