保证返回代码的一致性

  在调试时有一种会制造麻烦的情况是:调用程序屏蔽(或者覆盖)一个表示错误的返回代码。一定要想好您要向调用您的代码的例程返回什么值,并保证从您所调用的例程返回的所有错误代码都得到恰当处理。如果返回代码 n 在一个地方意味着一件事,不要在其他的地方用返回代码 n 表示另一件事。

  对每个例程使用“单点退出”

  这一点怎么强调也不过分:对每个例程使用单点退出 —— 是说,没有多重返回!这是容易忽视的、也是您可以采用的好的习惯。如果例程只从一个地方返回,那么可以用一种非常容易的方法保证在返回前完成所有必要的清理工作,这也使调试更容易。清单 2 显示了一个包含多重返回的代码示例。注意重复代码、甚至忘记“清理”项目是多么容易。

清单 2. 单点退出示例

  在第 15 行,badCount 增加了,因为 getText( ) 返回 null。在第 23 行,badCount 代码又重复了。现在想像一下如果这个例子需要完成更复杂的“清理”时会有多混乱。