- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
class?myexception:public?exception{ ? public: ? virtual?const?char?*?what()?const; ? }; ? const?char*?myexception::what()?const { ? return?myException; ? } ? class?A{ ? public: ? A( ){ } ? void?f( )?throw( ){ ? throw?new?myexception(); ? } ?}; ? 值传递示例 int?main(){ ? A?a; ? try { ? a.f(); ? } catch(exception*?pexc){ ? coutpexc-what(); ? delete?pexc; ? } ? } 运行结果:myException class?myexception:public?exception{ ? public: ? virtual?const?char?*?what()?const; ? }; ? const?char*?myexception::what()?const { ? return?myException; ? } ? class?A{ ? public: ? A( ){ } ? void?f( )?throw( ){ ? throw?new?myexception(); ? } ?}; ? 引用传递示例 int?main(){ ? A?a; ? try { ? a.f(); ? } catch(exceptionexc){ ? coutexc.what(); ? delete?exc; ? } ? } 运行结果:myException 单击此处编辑母版标题样式 单击此处编辑母版副标题样式 上海财经大学 信息管理与工程学院 2014年10月 计 算 机 编 程 第18章 C++异常处理 18.1 概述 18.2 异常处理方法 18.3 异常处理接口声明 18.4 异常处理注意事项 18.5 异常传递的方法 18.1 概述 由语法错误,即程序中因书写出现了错误的语句、函数、结构和类等,致使编译器无法顺利处理生成可执行程序。 程序运行过程时发生的错误,这种情况往往由算法和程序设计细节引起的。 C++的异常有两种情况: 关注运行期间发生的异常。 异常处理一般方法 在逻辑上保证程序的健壮性。例如,针对文件 打开失败的情况,最简单的保护的方法就是使用“return”命令,告诉上层调用者函数执行失败; 利用C++的异常机制,抛出异常,做相应处理。 18.2 异常处理方法 在程序执行过程中发生异常,可以不在本函数中处理,而是抛出一个错误信息,把它传递给上一级的函数来解决; 如果上一级解决不了,再传给其上一级,由其上一级处理; 如此逐级上传,直到最高一级还无法处理的话,运行系统会自动调用系统函数terminate,由它调用 abort函数终止程序。 异常处理机制优点在于把异常触发和处理机制分离,使得它们不在同一个函数中处理。底层函数只需要解决实际的任务,而不必过多考虑对异常的处理,而把异常处理的任务交给上一层函数去处理。 异常处理机制组成 C++的异常处理机制有3部分组成:try(检查),throw(抛出),catch(捕获)。 把需要检查的语句放在try模块中,首先通过检查语句来检查发生的错误,然后由throw抛出异常,发出错误信息,最后由catch来捕获异常信息,并进行处理。 一般throw抛出的异常要和catch所捕获的异常类型所匹配。 异常处理的一般格式 try { 被检查语句 throw 异常 } catch(异常类型1) { 进行异常处理的语句1 } catch(异常类型2) { 进行异常处理的语句2 } 异常处理的执行过程 控制通过正常顺序执行到达try 语句,然后执行try 块内的保护段 如果在保护段执行期间没有引起异常,那么跟在try 块后的catch 子句就
您可能关注的文档
最近下载
- 花城版小学音乐一年级下册第16课 《看画听歌——司马光砸缸救人的故事》教学课件.ppt VIP
- 第9课近代西方的法律与教化课件--高二上学期历史选择性必修1.pptx VIP
- UniGear550安装使用说明书cn20081107.pdf VIP
- 2025年中国静脉注射用人免疫球蛋白数据监测研究报告.docx
- 古诗三首·《江南春》课件.pptx
- 培智学校义务教育生活数学课程标准.pdf VIP
- 社区常见病多发病护理常规(22种疾病)2024版.docx
- 监控采购合同模板.docx VIP
- UniGear550-10KV铠式金属开关柜 .ppt VIP
- 2022年北京石油化工学院数据科学与大数据技术专业《计算机组成原理》科目期末试卷B(有答案).docx VIP
文档评论(0)