断言是邪恶的吗?

Go语言的创造者写的:

Go不提供断言。它们无疑是很方便的,但是我们的经验是程序员将它们用作拐杖,以避免考虑适当的错误处理和报告。正确的错误处理意味着服务器在发生非致命错误后仍可继续运行,而不会崩溃。正确的错误报告意味着错误是直接的并指向重点,从而使程序员不必解释大型的崩溃跟踪。当程序员看到的错误代码不熟悉时,精确的错误尤为重要。

您对此有何看法?


qq_遁去的一_1
浏览 261回答 3
3回答

Smart猫小萌

不,assert只要您按预期使用它,就没有错。就是说,这是为了在调试过程中捕获“不可能发生”的情况,而不是正常的错误处理。断言:程序逻辑本身失败。错误处理:不是由于程序错误引起的错误输入或系统状态。

莫回无

按照这种逻辑,断点也是邪恶的。断言应该用作调试辅助,别无其他。当您尝试使用它们而不是错误处理时,是“邪恶的” 。断言可以帮助程序员(程序员)发现并解决可能不存在的问题,并验证您的假设是否成立。它们与错误处理无关,但是不幸的是,一些程序员这样滥用它们,然后将它们声明为“邪恶的”。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go