3.3.2 传统错误检测方法的缺点

优质
小牛编辑
131浏览
2023-12-01

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

从这段代码可见,原先很清晰的连续的三个步骤与错误检测代码纠缠在一起,导致解决 问题的关键算法变得非常隐晦。当需要检测的异常情形(对应着函数返回的错误码)很多的 时候,程序逻辑会深深地掩埋在这些错误检测代码之中。