《编程精粹》中有很清楚的阐述,学C的人,应该看看这本书。
断言 和 错误处理 是两个不同的概念,区别在于它们所针对的 错误来源 不同。
ASSERT是仅存在于DEBUG版的,在RELEASE版中是没有的,它是用于预防“程序员的错误”,在产品的开发阶段起作用,是软件工程的一部分;
“错误处理代码”是RELEASE版本的一部分,用于处理“来自系统外部输入的错误”,如用户的不正确输入,线路上的误码,严格来说,宇宙射线应该归属于这一类错误;
另外,不论是断言,还是错误处理,其覆盖能力都是有限的,比较实际的考虑,是用20%的手段覆盖80%的问题可能,就可以了。没有十全十美的东西。
|