当前位置: 首页 > 面试题库 >

检查恐慌而无法恢复

邓深
2023-03-14
问题内容

在defer函数中,我想查看一次恢复调用是否会产生非nil值(不恢复)

可能吗?


问题答案:

那确切的事情是不可能的。您可能只想重新恐慌,就像在其他语言中重新引发异常一样。

        defer func() {
             if e := recover(); e != nil {
                 //log and so other stuff
                 panic(e)
             }
          }()


 类似资料:
  • 我试图从我的程序中创建的go例程中捕捉崩溃/恐慌,以便将它们发送到我的崩溃错误报告服务器(如Sentry/Raygun) 例如, 做这件事的惯用方法是什么?

  • 作为一个新的围棋爱好者,试图使用围棋的错误处理方式。明确地说--我喜欢例外。 我有一个服务器,它接受一个连接,处理一组请求并答复它们。我发现我可以做 在深层处理代码中 null 我觉得答案是“是的,它可以工作”,可以在您自己的代码中使用,但panic不应该被用于更广泛用途的库使用。库的标准和礼貌的行为方式是通过错误返回

  • 问题内容: 调用反射值的.FieldByName方法时出现以下错误,确切的错误是:- 和代码是:- 我了解的并不多,但这就是我所能获得的所有信息。 这是Go Playground上代码的链接:http : //play.golang.org/p/E038cPOoGp 问题答案: 您已经是一个指向结构的指针。尝试打印出您的代码。 没有理由使用的地址,然后调用that ,它会取消对刚创建的指针的引用。

  • 昨天我的Android Studio出了问题。我只是编程领域的新手。我在2019年11月安装了Android Studio。昨天我更新后出现了这个错误 我的个人电脑:英特尔酷睿i5 7200U,RAM 16GB,Win10,API 29,SDK 26 我应该多做些什么?我想学习更多关于Android的知识,但我不能连续第二天这样做。

  • 问题内容: 我曾经认为,如果goroutine中的恐慌的调用者在恐慌之前完成,它将使其终止程序(延迟恢复没有任何帮助,因为此时还没有发生恐慌), 直到我尝试以下代码: 我发现无论调用者函数完成与否,如果goroutines开始恐慌,调用者的延迟恢复机制将无济于事。整个程序仍然无效。 所以为什么?理论上,调用者功能仍在运行。当出现紧急情况时,调用者的延迟功能应起作用(包括恢复)。 问题答案: 该规范