您现在的位置是:群英 > 开发技术 > 编程语言
怎么能看懂的Golang异常处理recover panic?
Admin发表于 2022-07-20 17:11:46596 次浏览
这篇文章主要给大家介绍“怎么能看懂的Golang异常处理recover panic?”的相关知识,下文通过实际案例向大家展示操作过程,内容简单清晰,易于学习,有这方面学习需要的朋友可以参考,希望这篇“怎么能看懂的Golang异常处理recover panic?”文章能对大家有所帮助。

专注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?”的相关知识,感谢各位的阅读,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注群英网络,小编每天都会为大家更新不同的知识。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: Golang
相关信息推荐
2022-01-18 17:59:51 
摘要:这篇文章我们来了解C++和Java的区别,其实C++和Java的区别还是很明显的,而且有很多,例如C++有goto,Java没有goto;C++中有多继承,Java中只有单一继承等等这些下文总结了很多C++和Java使用的不同点,有需要的朋友可以了解看看,接下来就跟随小编来一起学习一下吧!
2022-05-20 17:27:54 
摘要:下面由go语言​教程栏目给大家介绍关于go 闭包的学习使用,希望对需要的朋友有所帮助!
2022-09-01 17:35:34 
摘要:ajax的url指的是发起请求的地址;ajax的url路径写法有两种,一种是包含协议、主机地址、端口号、项目名的完整请求路径,另一种是相对于当前请求地址的相对路径,语法为“$.ajax({type:...,url:...,data:...,success:...});”。
云活动
推荐内容
热门关键词
热门信息
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部