我们在GO中写了中等大小的应用程序。从所有代码行中约60%转到代码错误处理。这样的东西:
if err != nil {
return err
}
一段时间后,一遍又一遍地编写此行变得很累,我们现在正在考虑将所有错误代码替换为Panics。
我知道恐慌不是那样的使用。
有什么可能是潜在的陷阱,有人有类似事物的经验吗?
主陷阱将广泛使用锤子驱动螺钉。恐慌是针对无法恢复/意外错误的,错误返回值用于可恢复/预期错误。
用"崩溃"替换"恐慌"一词,因为从概念上讲,这是恐慌。老实说,您是否想编写一个通过Design 以任何方式出现任何错误时崩溃的应用程序?那将是地球上最脆弱的应用,是容错的对立面。
,因为所有评论都表明您可能会签约灾难,让我补充说,任何人都会维护此代码的人都会疯狂地尝试弄清楚事情到底出了什么问题如果您不进行适当的错误处理(即使您是您,也会困扰您)。
仅重复别人说的话 - 问题是无法区分这两个
- 可预测的&可能可追回条件
- 也许是不可恢复的(需要退出申请或更高级别处理 - 这可能来自您自己的申请条件或某些第三方库,但迫使您离开正常执行路径)
恐慌是为后一种类型保留的。