可能重复:
最喜欢的(聪明的)防御性编程最佳实践
一些程序员总是建议我集中精力进行简单的调试。什么是防御性编程,在练习时应该考虑到什么程度?
还有一个更重要的问题:编码时是否需要考虑任何关键事项?它们是什么?
可能重复:
最喜欢的(聪明的)防御性编程最佳实践
一些程序员总是建议我集中精力进行简单的调试。什么是防御性编程,在练习时应该考虑到什么程度?
还有一个更重要的问题:编码时是否需要考虑任何关键事项?它们是什么?
根据经验——如果你发现自己在想“这将永远是真的”,那就写ASSERT( condition)
在那个地方。这可能是防御性编程的核心;)。
如果防御性编程仅意味着一件事,那就应该广泛使用断言。
这是一篇关于何时何地使用的好文章assert
。
在很多情况下使用断言是好的。本节介绍其中一些:
* Internal Invariants * Control-Flow Invariants * Preconditions, Postconditions, and Class Invariants
http://en.wikipedia.org/wiki/Defensive_programming
防御性编程意味着,您检查文件是否存在以及您是否有权打开它,而不是仅仅尝试打开它并捕获任何最终的异常。(只是一个例子)