栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

golang中的recover

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

golang中的recover

recover

崩溃了恢复

func testa() {
   fmt.Println("aaaa")
}

func testb() {

   defer func() {
      //可以打印错误信息
      //recover()
      //fmt.Println(recover())

      //没有错就不要打印
      if err := recover(); err != nil {  //产生了panic异常
         fmt.Println(err)
      }
   }()
   //显示调用panic函数
   panic("this is a panic test")
   fmt.Println("bbbb")
}

func testc() {
   fmt.Println("cccc")
}

func main() {
   testa()
   //不会打印
   testb()
   testc()
}
控制链

 

func main() {
   fmt.Println("Enter function main.")
   panic(errors.New("something wrong"))
   p := recover()
   fmt.Printf("panic: %sn", p)
   fmt.Println("Exit function main.")
}

这个不可以

需要defer结合使用
defer定义在恐慌前面是可以的

func main() {
   fmt.Println("Enter function main.")
   defer func() {
      //可以打印错误信息
      //recover()
      //fmt.Println(recover())

      //没有错就不要打印
      if err := recover(); err != nil {  //产生了panic异常
         fmt.Println(err)
      }
   }()
   panic(errors.New("something wrong"))
   fmt.Println("程序退出了")
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/908873.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号