咔咔博客恐慌处理
在PHP中加入我们有一个程序直接报错了,那么程序就有可能直接死了。但是在go里,我们可以简单地处理一下,就会继续执行剩余的程序
演示一个错误使用的案例
这是演示的一个错误的案例,程序执行到if判断就会执行程序恐慌。但是没有继续执行恐慌之后的程序
这个原因简单的思考一下就明白
跟着案例我们缕一遍思路
- 首先程序会先运行 输入咔咔博客地址这一步
- 然后进行判断用户输入的与定义的值是否相等
- 如果不相等就会直接走Error方法报出恐慌
- 然后是不会在次执行 输入咔咔博客地址的,他是会执行剩余的程序,不是重复执行程序
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() } }