附加章2 异常.ppt_第1页
附加章2 异常.ppt_第2页
附加章2 异常.ppt_第3页
附加章2 异常.ppt_第4页
附加章2 异常.ppt_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象程序设计与C+,异常处理,教 师: 王 涛 电 话: 51688243 办公室: 九教北525 E-mail: ,异常处理机制,程序一般需要通过各种错误修复技术来提高代码健壮性: C语言中,通常通过函数的放回值来获得错误信息. C+语言中,提供异常处理机制来进行错误处理. 异常处理机制:程序发生异常情况时,可以创建一个包含错误信息的异常对象,并将该对象抛出到更高层的上下文环境中进行处理,如果该异常对象一直没有被捕获处理,则终止程序运行。 示例程序:A2_1,异常处理,异常处理包括: 异常抛出 异常捕获 异常分类: 系统异常(标准异常) 非法访问空指针 除0 栈溢出 内存分配错误 自定义

2、异常,抛出异常,程序发生异常情况时,创建一个异常对象并将该对象抛出到更高层的上下文环境中,称之为抛出异常,通过throw表达式完成. class CMyException char content256; public: CMyException(char* msg) strcpy(content, msg); char* GetContent() return content; ; / throw CMyException(“stack overflow.”);,异常捕获及处理,首先须用try块包含可能抛出异常的代码;之后跟catch子句对捕获的异常进行处理. try int n1, n2;

3、 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) /* */

4、 catch(CException2 e2)/* */ catch(CException3 e3)/* */ catch()/*/ 捕捉任何类型的异常,程序抛出异常后,不再顺序执行其后的代码,而是跳转到异常处理代码执行;如果该异常没有被捕获处理,则程序终止。 异常的抛出与捕获可以跨越函数:函数A中抛出的异常,不一定要在函数A中捕获处理,可以在调用A的上层函数中进行捕获处理. void f1(int n) throw(CException) / throw CException(); / 示例程序:A2_2,异常捕获及处理,综合设计题,用C+面向对象程序设计方法实现“学校机房管理程序”,功能如下: 人员信息管理:人员分为学生和教工两类,其信息(学号/工资号,姓名,年龄等)用文件存储,要求能够对人员信息进行添加、删除、修改、查询等管理操作。 登陆/计费管理: 续费功能,无费不能登陆上机 登

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论