小学生也能看懂的Golang异常处理recover panic
短信预约 -IT技能 免费直播动态提醒
🌌 专注Golang,Python语言,云原生,人工智能领域得博主
💜 过去经历的意义在于引导你,而非定义你,
💜 只要我们足够努力,任何人都有无限潜力
- 🚀panic 抛出异常函数
- 🚀recover 捕获异常函数
📣1:在一个主协成内捕获异常
package main
import (
"fmt"
)
func main(){
defer func(){
err := recover()
if err != nil{
fmt.Println("捕获到异常")
}
}()
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) //防止主协成过早退出,导致子协成没执行
}
🚀执行结果,主协成不能捕获到子协成的错误
📣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的文章就介绍到这了,更多相关Golang 异常处理 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341