可能重复:
Favorite (Clever) Defensive Programming Best Practices
我总是建议一些程序员专注于轻松调试。什么是防御性编程,在练习时应该考虑哪些?
还有一个更重要的问题:在编码时是否需要考虑关键事项以及它们是什么?
答案 0 :(得分:6)
看看
防御性编程就是这样的想法 开发人员做出的假设很少 绝对必要。此外, 开发人员先发制人 不仅预期的代码 潜在的问题,但也 规格变更。
答案 1 :(得分:3)
作为经验法则 - 如果你发现自己在想“这将永远是真的”,请在那个地方写下ASSERT( condition)
。这可能是防御性编程的核心所在;)。
答案 2 :(得分:2)
如果防御性编程只涉及一件事,那就应该广泛使用断言。
Here是关于何时何地使用assert
的好文章。
有很多情况 很好用断言。这个 部分涵盖其中一些:
* Internal Invariants * Control-Flow Invariants * Preconditions, Postconditions, and Class Invariants
答案 3 :(得分:1)
http://en.wikipedia.org/wiki/Defensive_programming
防御性编程意味着,您检查文件是否存在以及您是否有权打开它而不是仅仅尝试打开它并捕获任何最终异常。 (只是一个例子)