在通过合同进行编程时,首先检查一下function或方法的先决条件是否被满足,然后才开始工作,对吗? 做这些检查的两个最突出的方法是assert和exception 。 断言只在debugging模式下失败。 为了确保(单位)testing所有单独的合同前提条件以确定它们是否真的失败是至关重要的。 在debugging和发布模式下exception失败。 这具有testingdebugging行为与发布行为相同的好处,但会导致运行时性能损失。 你认为哪一个更可取? 在这里看到相关的问题
Go语言创build者写道 : Go没有提供断言。 它们不可否认方便,但我们的经验是,程序员使用它们作为拐杖,以避免考虑正确的error handling和报告。 正确的error handling意味着服务器在非致命错误而不是崩溃之后继续运行。 适当的错误报告意味着错误是直接的,并且重点在于,使程序员不必解释大的崩溃痕迹。 当程序员看到错误不熟悉代码时,精确的错误是特别重要的。 你对此有何看法?