登录
首页 >  Golang >  Go问答

Golang恐慌崩溃预防

来源:Golang技术栈

时间:2023-03-23 10:35:45 325浏览 收藏

各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题《Golang恐慌崩溃预防》,很明显是关于Golang的文章哈哈哈,其中内容主要会涉及到golang等等,如果能帮到你,觉得很不错的话,欢迎各位多多点评和分享!

问题内容

在 Golang 中,没有恢复的恐慌会使进程崩溃,所以我最终将以下代码片段放在每个函数的开头:

defer func() {
    if err := recover(); err != nil {
        fmt.Println(err)
    }
}()

只是为了防止我的程序崩溃。现在我想知道,这真的是要走的路吗?因为我觉得到处都放同样的代码看起来有点奇怪。

在我看来,Java 方式将异常冒泡到调用函数,直到 main 函数是控制异常/恐慌的更好方法。我知道这是 Go 的设计,但是像 Go 一样立即使进程崩溃有什么好处?

正确答案

只有知道确切原因,您才应该从恐慌中恢复过来。Go 程序在两种情况下会出现恐慌:

  • 程序逻辑错误(例如 nil 指针取消引用或越界数组或切片访问)
  • panic(...)来自您的代码或您的代码调用的代码的故意恐慌(称为 using )

在第一种情况下,崩溃是合适的,因为这意味着您的程序已进入错误状态并且不应继续执行。在第二种情况下,您应该只在预期的情况下从恐慌中恢复过来。解释这一点的最好方法就是简单地说它非常罕见,如果你看到它就会知道这种情况。我几乎可以肯定,无论您编写什么代码,您都不需要从恐慌中恢复。

终于介绍完啦!小伙伴们,这篇关于《Golang恐慌崩溃预防》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>