【发布时间】:2010-11-08 01:26:34
【问题描述】:
我从来没有断言的想法——你为什么要使用它们?
我的意思是,假设我是一名方程式赛车手,所有的断言都是诸如安全带、头盔等之类的东西。
测试(调试中)一切正常,但现在我们想做赛车(发布)! 我们是否应该放弃所有安全性,因为测试时没有问题?
我永远不会删除它们。我认为大多数声称删除与断言类似的东西的人从未分析过他们的代码,或者断言完全被取代了。 我从未见过任何真正的性能优势,尤其是关于 80 / 20 规则。
那么,我是否以某种方式错过了重点,或者有人可以告诉我,为什么我应该使用断言? 顺便说一句,我正在使用单元测试。
【问题讨论】:
-
你从来没有这个想法,但你永远不会删除它们?似乎您同时同意和不同意。
-
断言仅供不想编写错误处理代码的懒惰程序员使用。如果您知道可能出现错误,请处理它。如果不可能,那么就没有理由断言。
-
贾斯汀,这不是断言的用途。断言是为了在某些绝对不应该发生的事情发生时(因为它表明编程错误)发生了。它们不适用于处理日常的、可预测的错误情况。
标签: c++ performance assertions