3.3.2 传统错误检测方法的缺点
传统的错误检测方法是过去广泛使用的,这种做法有一个缺点:由于需要检测错误的地方非常多,最终导致程序中充斥着大量的错误检测代码,这些“喧宾夺主”的代码使得程序 控制结构复杂,程序逻辑难以理解,代码也难维护。例如,如果每次调用函数都要检测其返 回的错误码,会导致程序中存在大量如下形式的代码片段:
x = doOneThing()
if x == ERROR:
异常处理代码
......
或者更简练(但更难读)地写成:
if doOneThing() == ERROR:
异常处理代码
......
假如我们解决某个问题的算法是顺序执行三个步骤,用三个函数调用表示如下:
doStep1()
doStep2()
doStep3()
这段代码清晰地表明了要做的事情是什么,逻辑非常容易理解。但是当我们加入大量的
错误检测代码之后,可能写出如下代码:
if doStep1() == ERROR:
错误处理代码 1
elif doStep2() == ERROR:
错误处理代码 2
elif doStep3() == ERROR:
错误处理代码 3
从这段代码可见,原先很清晰的连续的三个步骤与错误检测代码纠缠在一起,导致解决 问题的关键算法变得非常隐晦。当需要检测的异常情形(对应着函数返回的错误码)很多的 时候,程序逻辑会深深地掩埋在这些错误检测代码之中。