10.3 将错误定义为不存在的
消除异常处理复杂性的最好方法是定义你的API,这样就没有异常需要处理了:将错误定义为不存在的。这似乎是一种亵渎,但在实践中却非常有效。考虑一下上面讨论的Tcl unset
命令。当unset
被要求删除一个未知变量时,它不应该抛出一个错误,而应该简单地返回而不做任何事情。我应该稍微改变unset
的定义:unset
不是删除一个变量,而是确保一个变量不再存在。在第一个定义中,如果变量不存在,unset
就不能完成它的工作,所以产生一个异常是合理的。在第二个定义中,unset
在变量的名字并不存在的情况下被调用,是非常自然的。在这种情况下,它的工作已经完成,所以它可以直接返回。不再需要报告错误案例。
Last updated