附加章2 异常.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文档。上传文档
查看更多
附加章2 异常.ppt

面向对象程序设计与C++ 异常处理 教 师: 王 涛 电 话: 办公室: 九教北525 E-mail: twang@bjtu.edu.cn 异常处理机制 程序一般需要通过各种错误修复技术来提高代码健壮性: C语言中,通常通过函数的放回值来获得错误信息. C++语言中,提供异常处理机制来进行错误处理. 异常处理机制:程序发生异常情况时,可以创建一个包含错误信息的异常对象,并将该对象抛出到更高层的上下文环境中进行处理,如果该异常对象一直没有被捕获处理,则终止程序运行。 示例程序:A2_1 异常处理 异常处理包括: 异常抛出 异常捕获 异常分类: 系统异常(标准异常) 非法访问空指针 除0 栈溢出 内存分配错误 …… 自定义异常 抛出异常 程序发生异常情况时,创建一个异常对象并将该对象抛出到更高层的上下文环境中,称之为抛出异常,通过throw表达式完成. class CMyException{ char content[256]; public: CMyException(char* msg){ strcpy(content, msg); } char* GetContent(){ return content;} }; //… throw CMyException(“stack overflow.”); 异常捕获及处理 首先须用try块包含可能抛出异常的代码;之后跟catch子句对捕获的异常进行处理. try{ int n1, n2; cin n1 n2; if (n2 == 0) throw CMyException(“divided by zero.”); printf(“%d / %d = %d”, n1, n2, n1 / n2); } catch(CMyException e){ // 捕获异常进行处理 printf(“exception: %s”, e.GetContent()); } 异常捕获及处理 catch子句格式:catch(异常类名 类对象名) 如果需要捕获多种类型的异常,可以依次写多个catch子句,或者cath(…)表示捕捉任何类型的异常: try{ /* …… */ } catch(CException1 e1){ /* ……*/} catch(CException2 e2){/* …… */} catch(CException3 e3){/* …… */} catch(…){/*……*/} // 捕捉任何类型的异常 程序抛出异常后,不再顺序执行其后的代码,而是跳转到异常处理代码执行;如果该异常没有被捕获处理,则程序终止。 异常的抛出与捕获可以跨越函数:函数A中抛出的异常,不一定要在函数A中捕获处理,可以在调用A的上层函数中进行捕获处理. void f1(int n) throw(CException){ // …… throw CException(); // …… } 示例程序:A2_2 异常捕获及处理 综合设计题 用C++面向对象程序设计方法实现“学校机房管理程序”,功能如下: 人员信息管理:人员分为学生和教工两类,其信息(学号/工资号,姓名,年龄等)用文件存储,要求能够对人员信息进行添加、删除、修改、查询等管理操作。 登陆/计费管理: 续费功能,无费不能登陆上机 登陆后自动计时到下机时结束,根据上级时间长短扣除其费用:学生每小时1元,教工每小时2元. 机房容量有限,人满之后不能其它人不能继续登陆.

文档评论(0)

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

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

1亿VIP精品文档

相关文档