在与许多开发人员一起开发一个大型 C++ 编程项目时,我们遇到了在代码中不恰本地使用 assert() 的问题,这会导致断言确实发生并导致产品崩溃的质量不佳。
问题是适用于正确使用 assert() 的好的原则是什么?什么时候使用 assert() 合适,什么时候不合适?是否有每个断言都应该通过的标准列表才能合法?我们如何鼓励正确使用 assert()?
作为对此的第一个破解,我会说 assert() 应该只用于记录被认为不可能达到的条件,并且应该在运行时将其标识为 assert() 失败出现是因为违反了编程假设。
人们可以做得比这更好吗?您使用 assert() 的体验如何?
最佳答案
对来自外部(方法外部或程序外部)的错误情况使用异常,例如参数检查和缺失/缺陷外部资源,如文件或连接或用户输入。
使用断言来指示内部缺陷,例如编程错误、不应发生的情况,例如类/方法不变量和无效的程序状态。
关于c++ - 什么时候应该使用 assert()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3702307/