一尘不染

断言是邪恶的吗?

go

Go语言的创造者写的

Go 不提供断言。不可否认,它们很方便,但我们的经验是,程序员将它们用作拐杖,以避免考虑正确的错误处理和报告。正确的错误处理意味着服务器在非致命错误后继续运行而不是崩溃。正确的错误报告意味着错误是直接的、切中要害的,从而使程序员免于解释大的崩溃跟踪。当看到错误的程序员不熟悉代码时,精确的错误尤其重要。

您对此有何看法?


阅读 156

收藏
2021-10-28

共1个答案

一尘不染

不,assert只要您按预期使用它就没有问题。

也就是说,它应该用于在调试期间捕获“不可能发生”的情况,而不是正常的错误处理。

  • 断言:程序逻辑本身的故障。
  • 错误处理:错误的输入或系统状态不是由于程序中的错误引起的。
2021-10-28