爱问知识人 爱问教育 医院库

什么是C语言中的异常处理机制?

首页

什么是C语言中的异常处理机制?

什么是C语言中的异常处理机制?

提交回答

全部答案

    2017-07-30 23:29:01
  •   在这之前的所有文章中,都是阐述关于C++的异常处理机制。的确,在C++语言中,它提供的异常处理的模型是非常完善的,主人公阿愚因此才和“异常处理”结下了不解之缘,才有了这一系列文章的基本素材,同时主人公阿愚在自己的编程开发过程中,也才更离不开她,喜欢并依赖于她。
       另外,C++语言中完善的异常处理的模型,也更激发了主人公阿愚更多其它的思考。难道异常处理机制只有在C++语言中才有吗?不是的,绝对不是这样的。实际上,异常处理的机制是无处不在的,它与软件的编程思想的发展,与编程语言的发展是同步的。异常处理机制自身的发展和完善过程,也是并记录了我们在编程思想上和编程方法上的改变、进步和发展的过程和重要的足迹。
       在前面的文章中,早就讲到过,异常处理的核心思想是,把功能模块代码与系统中可能出现错误的处理代码分离开来,以此来达到使我们的代码组织起来更美观、逻辑上更清晰,并且同时从根本上来提高我们软件系统长时间稳定运行的可靠性。那么,现在回过头来看,实际上在计算机系统的硬件设计中,操作系统的总体设计中,早期的许多面向结构化程序设计语言中(例如C语言),都有异常处理的机制和方法的广泛运用。
      只不过是到了像C++这样面向对象的程序设计语言中,才把异常处理的模型设计到了一个相当理想和完善的程度。下面来看看主人公阿愚对在C语言中,异常处理机制的如何被运用?goto语句,实现异常处理编程,最初也最原始的支持手段 1、goto语句,程序员朋友们对它太熟悉了,它是C语言中使用最为灵活的一条语句,由它也充分体现出了C语言的许多特点或者说是优点。
      它虽然是一条高级语言中提供的语句,但是它一般却直接对应一条“无条件直接跳转的机器指令”,所以说它非常地特别,它引起过许多争议,但是这条语句仍然一直被保留了下来,即便是今天的C++语言中,也有对它的支持(虽然不建议使用它)。goto语句有非常多的用途或优点,例如,它特别适合于在编写系统程序中被使用,它能使编写出来的代码非常简练。
      另外,goto语句另外一个最重要的作用就是,它实际上是一种对异常处理编程,最初也最原始的支持手段或方法。它能把错误处理模块的代码有效与其它代码分离开来。例程如下(请与第一集文章中的示例代码相比较):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的代码模块不易理解和阅读。它一直遭结构化程序设计思想所抛弃,强烈建议程序员不易使用它; (2) 与C++语言中提供的异常处理编程模型相比,它的确是太弱了一些。
      例如,它一般只能是在某个函数的局部作用域内跳转,也即它不能有效和方便地实现程序控制流的跨函数远程的跳转。 (3) 如果在C++语言中,用goto语句来实现异常处理,那么它将给面向对象构成极大破坏,并影响到效率。这一点,以后会继续深入阐述。总结 虽然goto语句缺点多多,但不管如何,goto语句的确为程序员朋友们,在C语言中,有效运用异常处理思想来进行编程处理,提供了一种途径或简易的手段。
      当然,运用goto语句来进行异常处理编程已经成为历史。因为,在C语言中,早就已经提供了一种更加优雅的异常处理机制。去看看吧!继续!。

    陈***

    2017-07-30 23:29:01

类似问题

换一换
  • 职业培训 相关知识

  • 教育培训
  • 教育科学
  • 教育考试

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):