- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章 异常处理和跟踪调试
10.1.2 异常的实现及基本规则 C++异常处理机制 C++标准库提供了 exception 的类, 它是所有标准库异常类的父类exception有一个virtual 函数 what(), 它返回一个字符串描述异常类型. 参考代码 std_exception.cpp * 在处理程序和语句之间的相互作用使异常在大型应用程序中变得复杂。 通常人们希望抛掷被及时捕获,以避免程序突然终止。 此外,跟踪抛掷很重要,因为捕获确定该程序的后继进展 例如,抛掷和捕获可以用来重新开始程序内的一个过程 或者从应用程序的一部分跳到另一部分 或者回到菜单。 * 在处理程序和语句之间的相互作用使异常在大型应用程序中变得复杂。 通常人们希望抛掷被及时捕获,以避免程序突然终止。 此外,跟踪抛掷很重要,因为捕获确定该程序的后继进展 例如,抛掷和捕获可以用来重新开始程序内的一个过程 或者从应用程序的一部分跳到另一部分 或者回到菜单。 * * 在处理程序和语句之间的相互作用使异常在大型应用程序中变得复杂。 通常人们希望抛掷被及时捕获,以避免程序突然终止。 此外,跟踪抛掷很重要,因为捕获确定该程序的后继进展 例如,抛掷和捕获可以用来重新开始程序内的一个过程 或者从应用程序的一部分跳到另一部分 或者回到菜单。 模板的概念 模板函数 类模板 标准模板库 第十章 异常处理和跟踪 预习检查 捕获异常的关键字是什么? 举出一个异常的例子? * 本章结构 异常概念 异常处理和跟踪调试 异常的实现和基本规则 异常的基本思想 多路捕捉 异常处理机制 使用异常的方法 10.1 异常概念 程序的错误,一种是编译错误,即语法错误 另一种是在运行时发生的错误 不可预料的逻辑错误 逻辑错误是由于不当的设计造成的 可以预料的运行异常 运行异常.可以预料,但不能避免,它是由系统运行环境造成的。 然而这些错误是能够预料的,通常加入一些预防代码便可防止这些异常 10.1.1异常处理的基本思想 函数f()捕获并处理异常 函数h() 引发异常 函数g() …… 调用者 异常传播方向 调用关系 10.1.1 异常处理的基本思想 抛掷异常的程序段 捕获并处理异常的程序段 ...... throw 表达式; ...... try 复合语句 catch(异常类型声明) 复合语句 catch(异常类型声明) 复合语句 … int main() { cout “Start\n”; try { cout “Inside try block\n”; throw 100; //抛出异常 cout “This will not execute”; } catch(int i){ //捕获异常 cout “Caught an exception – value is: ”; cout i endl; } catch(…){ cout “ default ” endl; } cout “End”; return 0; } 10.1.2 异常的实现及基本规则 异常处理机制 #includeiostream.h int Div(int x,int y); int main() { try { cout5/2=Div(5,2)endl; cout8/0=Div(8,0)endl; cout7/1=Div(7,1)endl; } catch(int) { coutexcept of deviding zero.\n; } coutthat is ok.\n; } int Div(int x,int y) { if(y==0) throw y; return x/y; } 程序运行结果如下: 5/2=2 except of deviding zero. that is ok. 10.1.2 异常的实现及基本规则 编写异常处理程序的规则是 任意数量的catch分程序立即出现在try分程序之后。 在catch行的圆括号中可包含数据类型声明 如果一个函数抛掷一个异常, 但在通往异常处理函数的调用链中找不到与之匹配的catch,则该程序通常以abort()函数调用终止 10.2 多路捕捉 多数程序可能有若干不同种类的运行错误,它们可以用异常处理机制。 每种错误可与一个类、一个数据类型或一个值有关。这样,在程序中就会出现多路捕获。 10.2 多路捕捉 class Range { /
您可能关注的文档
- 第十二章 自由能计算.doc
- 第十二章 股利的基本知识.ppt
- 第十二章 第1课 机械振动.ppt
- 第十二章 激素类药物.ppt
- 第十二章-素质测评的质量分析.ppt
- 第十二章 机械设计.ppt
- 第十二章__1简单机械全章学案.doc
- 第十二章国际投资与中国.ppt
- 第十二章:机器的运转.ppt
- 第十二章_三相异步电动机的调速.ppt
- 高一生物《酶的特性》(课件)市公开课一等奖省赛课获奖课件.pptx
- 经典高等数学课件D12-7傅立叶级数市公开课一等奖省赛课获奖课件.pptx
- 九年级下册英语M1U3市公开课一等奖省赛课获奖课件.pptx
- 七年级生物上册44其他生物的营养省公开课一等奖新课获奖课件.pptx
- 苏州大学中级财务会计课件5投资概要.ppt
- 2025年建筑设计中英文对照外文翻译文献.pdf
- 2025年建筑施工企业安全生产责任制度(三篇).pdf
- 2025年广东开放大学中国近代史纲要形成性考核_第一章形成性考核答案.pdf
- 2025年工程移交生产管理制度模版(二篇).pdf
- 二零二五年保姆照护老人服务合同:长者生活全方位照护协议3篇.docx
最近下载
- 2025医院卫生院党支部书记述职报告(必威体育精装版版).docx VIP
- Femap中文学习全面指南.pptx VIP
- 人工智能的机器学习与深度学习.pptx
- 武汉市2025届高中毕业生二月调研考试 数 学 试 卷(附答案).docx VIP
- 核心素养导向表现性评价案例 北师大版小学数学五年级上册 分数小数互化.docx
- 2025年消防设施操作员(中级技能操作考核)考试题库(全新版).pdf VIP
- 危机公关的跨文化管理与传播.pptx VIP
- 公立医院加强经济运营管理的探索(PPT 97页)【97页】.pptx VIP
- 哈尔滨工业大学介绍.pptx VIP
- 烟草法律法规零售户培训.pptx
文档评论(0)