goto语句,实现异常处理编程,最初也最原始的支持手段
1、goto语句,程序员朋友们对它太熟悉了,它是C语言中使用最为灵活的一条语句,由它也充分体现出了C语言的许多特点或者说是优点。它虽然是一条高级语言中提供的语句,但是它一般却直接对应一条“无条件直接跳转的机器指令”,所以说它非常地特别,它引起过许多争议,但是这条语句仍然一直被保留了下来,即便是今天的C++语言中,也有对它的支持(虽然不建议使用它)。goto语句有非常多的用途或优点,例如,它特别适合于在编写系统程序中被使用,它能使编写出来的代码非常简练。另外,goto语句另外一个最重要的作用就是,它实际上是一种对异常处理编程,最初也最原始的支持手段或方法。它能把错误处理模块的代码有效与其它代码分离开来@倘缦拢ㄇ胗氲谝患恼轮械氖纠胂啾冉希?/p>
void main(int argc, char* argv[])
{
if (Call_Func1(in, param out)
{
// 函数调用成功,我们正常的处理
if (Call_Func2(in, param out)
{
// 函数调用成功,我们正常的处理
while(condition)
{
//do other job
// 如果错误直接跳转
if (has error) goto Error;
//do other job
}
}
// 如果错误直接跳转
else goto Error;
}
// 如果错误直接跳转
else goto Error;
// 错误处理模块
Error:
process_error();
exit();
}
呵呵!上面经过改善后的代码是不是更加清晰了一些,也更简练了一些。因此说,goto语句确是是能够很好地完成一些简易的异常处理编程的实现。虽然它较C++语言中提供的异常处理编程模型相差甚远。
为什么不建议使用goto语句来实现异常处理编程
虽然goto 语句能有效地支持异常处理编程的实现。但是没有人却建议使用它,即便是在C语言中。因为:
(1) goto语句能破坏程序的结构化设计,使代码难于测试,且包含大量goto的代码模块不易理解和阅读。它一直遭结构化程序设计思想所抛弃,强烈建议程序员不易使用它;