【GO】恐慌处理

简介: 【GO】恐慌处理

咔咔博客恐慌处理

在PHP中加入我们有一个程序直接报错了,那么程序就有可能直接死了。但是在go里,我们可以简单地处理一下,就会继续执行剩余的程序

演示一个错误使用的案例

这是演示的一个错误的案例,程序执行到if判断就会执行程序恐慌。但是没有继续执行恐慌之后的程序


这个原因简单的思考一下就明白


跟着案例我们缕一遍思路


  • 首先程序会先运行 输入咔咔博客地址这一步
  • 然后进行判断用户输入的与定义的值是否相等
  • 如果不相等就会直接走Error方法报出恐慌
  • 然后是不会在次执行 输入咔咔博客地址的,他是会执行剩余的程序,不是重复执行程序

image.png

屏幕快照 2022-05-18 下午11.16.43.png

package main
import "fmt"
type Person48 struct {
}
func (p *Person48) Error() {
  panic("程序恐慌")
}
func main() {
  //defer func() {
  //  if err := recover(); err != nil {
  //    fmt.Println("恢复程序继续执行")
  //  }
  //}()
  //fmt.Println("请输入咔咔博客的地址")
  //blogAddress := "blog.fangkang.top"
  //fmt.Scan(&blogAddress)
  //if blogAddress != "blog.fangkang.top" {
  //  person48 := new(Person48)
  //  person48.Error()
  //}
  test()
  fmt.Println("恐慌后需要执行的程序")
}
func test() {
  defer func() {
    if err := recover(); err != nil {
      fmt.Println(err)
    }
  }()
  fmt.Println("请输入咔咔博客的地址")
  blogAddress := "blog.fangkang.top"
  fmt.Scan(&blogAddress)
  if blogAddress != "blog.fangkang.top" {
    person48 := new(Person48)
    person48.Error()
  }
}
相关文章
|
3月前
|
Go API 微服务
当 go-zero 邂逅 chatgpt...
当 go-zero 邂逅 chatgpt...
|
3月前
|
Go
提高生产力的Go小技巧
本文档介绍了Go语言编程中的十一种实用技巧与最佳实践
|
3月前
|
传感器 Go C语言
Go 围炉札记
Go 围炉札记
48 2
|
3月前
|
人工智能 编译器 Go
Go 哪里没有做好?Rob Pike 深刻反思了
Go 哪里没有做好?Rob Pike 深刻反思了
|
6月前
|
Java Linux Go
关于我想写一个Go系列的这件事
本文是Go语言专栏的开篇,作者sharkChili分享了他对Go语言的喜爱,并简要介绍了如何在Windows和Linux上搭建Go环境。文章包括下载安装包、解压、配置环境变量等步骤。此外,还展示了编写并运行第一个"Hello, sharkChili"的Go程序。最后提到了Go项目的`.gitignore`文件示例,并鼓励读者关注作者的公众号以获取更多Go语言相关的内容。
40 0
|
Cloud Native Go 开发者
那些年,我们追过的Go BUG
那些年,我们追过的Go BUG
114 0
|
Java 测试技术 Go
送给学Go或者转Go同学的一套编码规范
有没有 xd 们是从别的语言转 Go
184 0
送给学Go或者转Go同学的一套编码规范
|
算法 Java Go
Go可以无限Go?回家等通知吧
Go可以无限Go?回家等通知吧
|
IDE Go 开发工具
三分钟学 Go 语言——开始
三分钟学 Go 语言——开始
三分钟学 Go 语言——开始
|
编译器 Go Windows
Go知识梳理
快速学习Go知识梳理
Go知识梳理