当前位置:首页 » 《资源分享》 » 正文

一看就会☀️Go异常处理recover,panic_原始人

29 人参与  2021年10月18日 07:43  分类 : 《资源分享》  评论

点击全文阅读


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

在这里插入图片描述

  • 🚀panic 抛出异常函数
  • 🚀recover 捕获异常函数

📣实践

  • 📣1:在一个主协成内捕获异常
  • 📣2:假设子协成内部错误,看看主协成能不能捕获到
  • 📣3:假设子协成错误需要自己捕获

📣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)

}

执行结果,成功捕获异常
在这里插入图片描述


点击全文阅读


本文链接:http://zhangshiyu.com/post/29977.html

捕获  协成  异常  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1