在PHP中加入我们有一个程序直接报错了,那么程序就有可能直接死了。但是在go里,我们可以简单地处理一下,就会继续执行剩余的程序
演示一个错误使用的案例这是演示的一个错误的案例,程序执行到if判断就会执行程序恐慌。但是没有继续执行恐慌之后的程序
这个原因简单的思考一下就明白
跟着案例我们缕一遍思路
首先程序会先运行 输入咔咔博客地址这一步然后进行判断用户输入的与定义的值是否相等如果不相等就会直接走Error方法报出恐慌然后是不会在次执行 输入咔咔博客地址的,他是会执行剩余的程序,不是重复执行程序正确的使用案例
我们在面向对象那里学会了封装,我们把判断用户的信息放到另一个函数 main去调用执行 这个时候就会直接执行剩余的程序了
package mainimport "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() }}
博主微信欢迎交流 总结 以上是内存溢出为你收集整理的【GO】恐慌处理全部内容,希望文章能够帮你解决【GO】恐慌处理所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)