无副作用

应尽量避免使用输出参数,如果有需要,可以考虑改变函数所属对象的参数状态达到输出参数的目的。

分割指令和询问

函数要么进行询问,要么进行操作,但是不可两者一起进行。

处理错误

避免使用错误码,应该使用抛出异常的方式来指示错误的类型等。

函数应该只做错误处理一件事,也就是在try,catch/finally代码块的前后均不应该有其他的操作。

将正常操作和异常处理的操作分隔开,形成两个不同的函数,而不是一起堆放在try-catch代码块中。