【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()
  }
}
相关文章
|
6月前
|
Cloud Native Go 开发者
那些年,我们追过的Go BUG
那些年,我们追过的Go BUG
35 0
|
9月前
|
算法 Java Go
Go可以无限Go?回家等通知吧
Go可以无限Go?回家等通知吧
|
Linux Go Windows
go第一站|Go主题月
Go目前支持三大平台的安装,Linux,Mac,Windows。
62 0
|
IDE Go 开发工具
三分钟学 Go 语言——开始
三分钟学 Go 语言——开始
三分钟学 Go 语言——开始
|
编译器 Go Windows
Go知识梳理
快速学习Go知识梳理
Go知识梳理
|
算法 Go 索引
Go 每周一刷1.1
Go 每周一刷1.1
57 0
Go 每周一刷1.1
Go 每周一刷1.0
Go 每周一刷1.0
64 0
Go 每周一刷1.0
在Go中,你犯过这些错误吗
在Go中,你犯过这些错误吗
60 0
在Go中,你犯过这些错误吗
|
存储 Java Go
慢聊Go之GoVSJava之微观比较(7)|Go主题月
慢聊Go之GoVSJava之微观比较(7)|Go主题月
72 0
|
存储 Java Go
慢聊Go之GoVSJava之微观比较(6)|Go主题月
慢聊Go之GoVSJava之微观比较(6)|Go主题月
72 0