为什么Go最终会采用恐慌/恢复的异常处理,当语言如此惯用并且是错误代码的强烈提倡者时?Go的设计者有哪些场景不会被错误代码处理并且需要恐慌/恢复?
我理解约定说限制恐慌/恢复,但运行时是否也限制它们不能用作C++中的常规throw/catch?
使用错误返回代码进行参数验证是否被认为是良 我的意思是有人应该在哪里使用错误与恐慌(有没有指导方针?).
例如:
我想,使用通常会让Go感觉非常C-ish并且看起来非常糟糕的错误.在这些情况下,恐慌是不是一个好的选择?
或者Gopher应该使用Python/Ruby/JS方法"只是让它失败"?
我有点困惑,因为在我的理解中恐慌是真正的"错误".但是一直使用错误都很糟糕.
即使我会返回错误代码:如果有人将错误的参数传递给我的函数但忽略了错误代码,我该怎么办? - >什么都没有!老实说,我会说恐慌对于那些情况很好,但是在一种语言中,错误代码用于恐慌,这不是很清楚.