(9.1)--9.1 异常的概念及实现.pptVIP

  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文档。上传文档
查看更多

9.1异常的概念及实现

目录第一节异常的概念与基本思想第二节异常处理机制的实现第三节构造函数、析构函数与异常处理第四节异常匹配第9章异常处理(ExceptionHandling)第五节标准异常及其层次结构第六节异常处理中需要注意的问题

第一节9.1异常处理的概念与基本思想异常是指程序运行时出现的不正常情况而导致偏离正常流程的现象。运行时发生的错误,比如除数为零、访问数组元素的下标越界,在越界时又写入了数据或意外的非法输入等等。异常存在于程序的正常功能之外,并要求程序立即处理。通过异常可以将问题的检测和解决分离,方便了程序的开发和设计。

9.1.1异常处理的概念与基本思想没有异常处理时,如果发生错误,就可能导致运行错误而终止程序,因为程序中没有对此的防范措施,系统只好终止程序的运行。如果程序能够事先分析程序运行时可能出现的各种意外情况,并且分别制定出响应的处理方法,程序就可以在处理完问题继续执行,而不是立即终止运行。这就是异常处理。

9.1.2异常处理模式C++中,如果被调用函数R需要发送一条出错信息给调用函数Q,它可向调用环境发送一个描述错误信息的对象。如果调用环境Q没有捕获该错误信息对象,则该错误信息对象会被自动向上一层的调用环境发送。

9.1.2异常处理模式如果调用环境Q捕获了该错误信息对象但无法处理,则调用环境Q可以将该错误信息对象主动发送到它的上一层调用环境中;直至被操作系统捕获和处理,导致程序被终止执行。

第二节9.2异常处理机制的实现C++语言的异常处理语句包括引发异常语句throw和捕获处理语句try-catch,这两种语句就是C++语言中用于实现异常处理的机制。

9.2.1异常处理的语句try块(tryblock)错误处理部分用它来处理异常。try语句块以try关键字开始,后面是用花括号括起来的语句序列块。try块后以一个或多个catch子句结束。在try块中的代码直接使用throw抛出一个异常或在调用函数时抛出一个异常,程序会立刻跳转到catch子句进行处理。因此,catch子句也称为处理代码。try子句中的语句可以是任意C++语句,如果预料程序有可能发生异常,则将其放在try块中。

9.2.1异常处理的语句throw表达式(throwexpression)系统通过throw表达式抛出异常,错误检测部分使用这种表达式来说明遇到了无法处理的错误。关键字throw后的表达式的值称为一个异常,所以执行throw语句就称为抛出异常,可以抛出任意类型的一个值。如果程序中有多处要抛出异常,应该使用不同的操作数进行区别。执行throw语句时,try块就会停止执行。如果try块之后有一个合适的catch块,控制权就会转交catch块处理。

9.2.1异常处理的语句

9.2.2异常接口声明C++提供了异常接口声明,即在函数原型声明中,位于参数表列之后。异常接口声明清晰地告诉函数的使用者:该函数可能抛出的异常类型,以便使用者能够方便地捕获异常对象进行异常处理。

9.2.2异常接口声明(1)抛出指定类型异常对象的函数原型voidfunction()throw(type1,type2,…);(2)能抛出任何类型异常对象的函数原型:voidfunction();(3)能抛出任何类型异常对象的函数原型:voidfunction()throw();

谢谢

文档评论(0)

177****2883 + 关注
实名认证
文档贡献者

热爱教育,专注于教育领域创作与分享,让我们共同进步。

1亿VIP精品文档

相关文档