程序设计语言与编译ppt课件_3.3 显示调用、异常处理.pptxVIP

程序设计语言与编译ppt课件_3.3 显示调用、异常处理.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第三章控制结构;规定程序单元之间控制流程的机制。

最简单的机制是ALGOL60的分程序。

在程序顺序执行的过程中,遇到一个分程序,就建立一个新的引用环境,并执行这个分程序。

更强的机制允许程序员通过显式调用单元(例如函数和过程),把控制从一个单元转移到另一个单元。;四种单元级控制结构:

显式调用

异常处理

协同程序

并发单元;第三章控制结构;FORTRAN语言的子程序和函数

PASCAL语言的函数和过程

C语言的函数

都属于显式调用;每个子程序(函数、过程)都有一个名字,通过名字进行程序单元的调用。

调用语句将控制转向被调用单元,

被调用单元执行完后,又将控制返回主调用单元,并继续执行紧跟在调用语句后面的语句(返回地址)。;显式调用;当控制从调用单元转向被调用单元时,还可进行参数传递。

参数传递可实现单元之间的通信。

单元之间的通信也可以通过全局变量或非局部变量来进行(副作用)。;参数传递

每次调用允许传递不同的数据(实际参数),为单元间的通信提供了灵活性。

也提高了程序的可读性和可修改性。;第三章控制结构;异常:导致程序正常执行中止的事件。

要靠发信号来引发。

用异常条件来表示。

早期语言中除PL/1外,通常没有专门的异常条件及异常处理程序。

后期开发的语言提供了异常处理机制,使涉及异常事件的处理独立出来。

不包括在程序的主流程中,以保证程序的逻辑按基本算法进行。

;有关异常处理的主要问题:

(1)异常如何说明,它的作用域是什么?

(2)异常如何发生?(如何捕获异常)

(3)发生异常时,流程如何转移?

(4)发生异常时,如何绑定相应的异常处理程序?

(5)处理异常之后,控制流程转向何处?

在这些问题中,问题(5)的解决对语言处理异常机制的能力和可使用性有很大的影响。

;语言设计中可能的基本选择是,相应的异常处理程序执行完之后,允许控制返回发生异常事件的执行点。

在这种情况下,异常处理程序可对执行的程序进行“修补”,终止相应的异常事件,以便程序继续正常地执行。

解决了程序继续执行的问题,

但并未真正消除发生异常的因素。

;相应的异常处理程??执行完之后,终止引起异常的程序单元的执行,由异常处理程序进行控制的转移。

意味着引起异常的单元不能恢复执行;从实现的观点来看,这意味着删除异常单元的活动记录。;(异常处理是C++的一个主要特征,

它提出了出错处理更加完美的方法。

设置陷阱抛出异常捕获异常

trythrowcatch;C++的异常处理语句的格式如下:

try{…}

catch(异常类型1){异常1处理程序}

catch(异常类型2){异常2处理程序}

catch(异常类型n){异常n处理程序}

文档评论(0)

Kaiser + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档