仅当返回的错误被丢弃时才恐慌

时间:2021-01-04 16:41:56

标签: go error-handling

我相信我在某个时候在 Go stdlib 中看到了一个函数,它在出错时允许您通过返回来处理所述错误。但是,如果您选择忽略该错误,则会出现恐慌。因此,例如:

err := theFunction() // No panic

theFunction()        // Panic

_ := theFunction()   // Panic

今天想起这个功能,想着怎么实现,却什么也想不起来。也许与defer有关?

不管怎样,当我决定检查该函数的源代码以获得一些答案时,我意识到我不记得它的名字,也不记得它所在的包。因此我来到这里,希望能学到:

  • 有没有这样的功能/这可能吗,还是我记错了?
  • 有哪些此类函数的示例?
  • 如何做到这一点?

1 个答案:

答案 0 :(得分:0)

通常的解决方案是有两个函数,一个 Thing() error 和一个 MustThing(),其中 Must 版本会发生恐慌而不是返回错误。您可以在 templateregexp 包的 stdlib 中查看此类示例。

相关问题