当前位置: 首页 > news >正文

网站开发适合什么工作个人网页在线制作

网站开发适合什么工作,个人网页在线制作,肇庆网站建设方案咨询,如何用wordpress上传根目录panic() 和 recover() 是 Go 语言中用于处理错误的两个重要函数。panic() 函数用于中止程序并引发panic,而 recover() 函数用于捕获panic并恢复程序的执行。 什么是panic和recover? panic panic() 函数用于中止程序并引发panic。panic() 函数可以接收…

panic() 和 recover() 是 Go 语言中用于处理错误的两个重要函数。panic() 函数用于中止程序并引发panic,而 recover() 函数用于捕获panic并恢复程序的执行。

什么是panic和recover?

panic

  • panic() 函数用于中止程序并引发panic。
  • panic() 函数可以接收一个参数,该参数将作为panic的原因。
  • 当发生panic时,程序将停止执行,并开始寻找最近的recover调用。
  • 如果找不到recover调用,程序将打印panic的原因并退出。

recover

  • recover() 函数用于捕获panic并恢复程序的执行。
  • recover() 函数可以接收一个参数,该参数将存储panic的原因。
  • 如果在发生panic时调用了recover,程序将继续执行,并且panic的原因将被存储在recover的第一个参数中。
func main() {defer func() {err := recover()if err != nil {fmt.Println("panic:", err)}}()panic("hello, panic!")
}

panic 的传播

 panic 函数会向上传播到调用它的 goroutine。如果 panic 函数没有被捕获,则会一直向上传播,直到遇到 defer 语句中调用的 recover() 函数,或者程序退出。

注意事项

跨协程失效

panic 和 recover 不能跨协程使用。这意味着在一个协程中发生的panic只能在同一个协程中通过 recover 捕获。如果在一个协程中发生了panic,而在另一个协程中调用了 recover,那么 recover 将无法捕获panic。参考如下代码:

func main() {defer println("in main")go func() {defer println("in goroutine")panic("")}()time.Sleep(1 * time.Second)
}

失效的崩溃恢复

如果在一个defer函数中发生了panic,那么该defer函数后面的语句将不会被执行。这意味着在defer函数中使用 recover 来捕获panic是无效的。

func main(){defer fmt.Println("main....")defer func() {err := recover()if err != nil {fmt.Println("panic:", err)}}()panic("hello, panic!")
}

嵌套崩溃

嵌套崩溃是指在一个 goroutine 中调用 panic() 函数,然后在 defer 语句中再次调用 panic() 函数。在这种情况下,panic() 函数会从内向外传播,直到程序崩溃。嵌套崩溃可能会导致程序不可用,因此应避免使用。

func multiplePanic() {defer fmt.Println("in defer")defer func() {defer func() {panic("panic 3")}()panic("panic 2")}()panic("panic 1")
}

http://www.mmbaike.com/news/39175.html

相关文章:

  • mvc 做网站网游百度搜索风云榜
  • 视频多平台发布seo顾问服务深圳
  • 广州新公司网站建设百度广告关键词价格表
  • wordpress app开发教程郑州seo关键词自然排名工具
  • 新开传奇网站超变页面优化
  • 网站正在建设中网页sem搜索
  • 大学生创业服务网站建设方案培训机构管理系统
  • 网站怎么做404seo网站整站优化
  • 论坛网站建设源码下载seo推广优化平台
  • 手机网站可以做百度商桥吗电子商务主要学什么就业方向
  • 提交网站收录关键词简谱
  • 怎么查一个网站是谁做的福州seo经理招聘
  • 用家里网络做网站网络营销是指什么
  • 网站首页设计常见的6种布局方式做一个私人网站需要多少钱
  • 做金融看哪些网站有哪些想在百度做推广怎么做
  • 手机网站底部悬浮菜单营销策略案例
  • 怎么样做购物网站教育培训机构排名
  • 长春市建设局网站广告投放平台公司
  • 网站二次开发重庆百度小额贷款有限公司
  • 优质国外网站百度有几个总部
  • 那些做seo的网站百度收录最新方法
  • 网站建设行业swot分析关键信息基础设施安全保护条例
  • 如何设置网站名字吗白杨seo课程
  • 安徽省住房和城乡建设厅证件查询安卓排名优化
  • 北京公司注册核名网站站长之家ip查询工具
  • 网站建设设计公司+知乎seo推广网络
  • 青岛公司网站建设公司排名制作网页一般多少钱
  • 重庆市建设工程信息网官网人福州seo推广公司
  • 免费的黄台直播湖南专业seo优化
  • 宁波seo整站优化站长号