网站大量收购独家精品文档,联系QQ:2885784924

面向对象编程技术与方法第9章异常处理.pptxVIP

面向对象编程技术与方法第9章异常处理.pptx

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象编程技术与方法(C++) 第9章 异常处理 第9章 异常处理 第9章 异常处理 9.1 异常处理概述 9.2 异常处理的实现 9.3 带异常声明的函数 9.4 成员函数抛出异常 9.4.1 一般成员函数抛出异常 9.4.2 构造函数抛出异常 9.4.3 析构函数抛出异常 9.5 标准库中的异常类型 9.6 小结 第9章 异常处理 9.1 异常处理概述 9.2 异常处理的实现 9.3 带异常声明的函数 9.4 成员函数抛出异常 9.5 标准库中的异常类型 9.6 小结 第9章 异常处理 9.1 异常处理概述 正常终止一个程序是从主函数返回。其他:从函数执行return语句返回,调用exit()和abort(),使用调试宏assert(表达式) 。 void exit(int status); //删除使用的内存空间后返回系统 void abort(void); //立即终止程序 void assert( expression ); //调试宏,false终止程序 软件应具有健壮性。软件不仅在正常情况下能够正确运行,在非正常情况下也要具有合理的表现。例如,当出现用户误操作、内存空间不足、外部设备或文件连接不正确等异常情况时,程序应能够做出适当处理,而不能出现死机、丢失数据或其他灾难性的后果。 C++处理异常情况的基本思想是将异常检测与异常处理分离。 第9章 异常处理 9.1 异常处理概述 9.2 异常处理的实现 9.3 带异常声明的函数 9.4 成员函数抛出异常 9.5 标准库中的异常类型 9.6 小结 第9章 异常处理 9.2 异常处理的实现 处理异常的功能通过try、throw、catch三个部分实现。任何需要检测异常的语句都放在try模块中,出现异常时由throw语句抛出一个异常信息,由紧跟在try模块后面的catch语句捕捉并进行相应的处理。 try与catch总是结合使用的。一个try模块可与多个catch语句(称为异常处理器)联系,每个catch语句处理一种类型的异常信息。 运行结果: after throw in Div(). 5.5/1.1 = 1 double exception: 0.5 main() end. 第9章 异常处理 9.1 异常处理概述 9.2 异常处理的实现 9.3 带异常声明的函数 9.4 成员函数抛出异常 9.5 标准库中的异常类型 9.6 小结 第9章 异常处理 9.3 带异常声明的函数 调用一个函数时,如果该函数可能抛出异常,我们希望通过函数接口就能够看到异常的类型,以增强可读性,并方便用户设计异常处理程序。异常声明跟随在函数参数列表之后,通过关键字throw 来指定。例如下面带异常声明的函数原型形式,其中T表示函数返回类型,list表示函数形参表,fun表示函数名。 T fun(list) throw(); //声明该函数不抛出异常 T fun(list); //声明该函数可抛出任意类型的异常 //声明下面函数可抛出T1, T2类型的异常 T fun(list) throw(T1, T2); 运行结果: int exception: 1 main() end. 第9章 异常处理 9.1 异常处理概述 9.2 异常处理的实现 9.3 带异常声明的函数 9.4 成员函数抛出异常 9.5 标准库中的异常类型 9.6 小结 第9章 异常处理 9.4 成员函数抛出异常 9.4.1 一般成员函数抛出异常 对象的成员函数抛出异常时,该对象的析构函数仍然得到执行,而且是在对象离开作用域时调用析构函数。异常处理机制不会破坏面向对象特性。 第9章 异常处理 9.4 成员函数抛出异常 9.4.2 构造函数抛出异常 当类对象的构造函数抛出异常时,已经构造完毕的子对象将会逆序地被析构,还没有开始构造的子对象将不再被构造。正在构造的对象(构造函数抛出异常的对象)将停止继续构造,并且不执行它的析构函数,也就是说构造函数中抛出异常将导致对象的析构函数不被执行。 第9章 异常处理 9.4 成员函数抛出异常 9.4.3 析构函数抛出异常 原则上析构函数中是不应该再有异常抛出的,因为析构函数的作用就是释放对象占用的资源。如果析构函数可能出现异常,要把异常处理完全封装在析构函数内部,不让异常抛出析构函数之外。 第9章 异常处理 9.1 异常处理概述 9.2 异常处理的实现 9.3 带异常声明的函数 9.4 成员函数抛出异常 9.5 标准库中的异常类型 9.6 小结 第9章 异常处理 9.5 标准库中的异常类

文档评论(0)

139****1983 + 关注
实名认证
文档贡献者

副教授、一级建造师持证人

一线教师。

领域认证该用户于2023年06月21日上传了副教授、一级建造师

1亿VIP精品文档

相关文档