C面向对象程序设计(第二版)第九章异常处理概要1
* * * * * * * * * * * * * * * * * * * * C++面向对象程序设计 C++面向对象程序设计(第二版) 主编 曹静 中国水利水电出版社 C++面向对象程序设计(第二版) 第九章 异常处理 * C++面向对象程序设计 第九章 异常处理 9.1 异常处理的基本思想 9.2 C++异常处理的实现 9.3 异常处理中的构造与析构 * C++面向对象程序设计 9.1 异常处理的基本思想 计算机程序在机器上运行时会产生错误,这些错误对于编程人员可以预料到但却无法避免。 在一个小型程序中,一旦程序运行时发生了异常,一般是将程序立即中断运行,从而无条件释放所有资源。而在一个较为复杂的软件中,函数与函数之间存在着各自明确的功能和相互间复杂的调用关系,发现错误的函数又并不具备处理错误的能力。 * C++面向对象程序设计 C++的异常处理机制使得异常的引发和处理不需要在同一函数内完成,它可以将异常向上传播,这样底层的函数可以专门用以解决具体问题,而上层的调用者就可以在适当的位置针对不同类型的异常设计处理。 9.1 异常处理的基本思想 * C++面向对象程序设计 9.2 C++异常处理的实现 9.2.1 异常处理的机制 9.2.2 异常处理的规则 * C++面向对象程序设计 9.2.1 异常处理的机制 C++语言提供了对处理异常情况的内部支持。在C++语言中,try、throw和catch语句就是用于实现异常处理的机制。有了C++程序的异常处理机制,程序可以向更高的执行上下文传递意想不到的事件,使C++程序能更好地从各种异常事件中进行有效地恢复,从而更好地执行 * C++面向对象程序设计 异常处理的机制的主体有两大部分,一是错误侦测区块,二是错误处理区块。 9.2.1 异常处理的机制 * C++面向对象程序设计 try { //错误侦测区块 复合语句 throw 异常类型表达式; //如果发生错误用throw语句抛出异常 } catch(异常类型1) { //错误处理区块 复合语句 } catch(异常类型2) { //错误处理区块 复合语句 } …… catch(…) // 如果在前面并没有列举异常类型,则由此处理区块处理 { //错误处理区块 复合语句 } //try-throw-catch后继续执行 9.2.1 异常处理的机制 * C++面向对象程序设计 try子句后的复合语句是代码的保护段。catch子句后的复合语句是用来处理异常的程序,处理由throw表达式抛掷的异常。 当错误侦测区块里的程序执行发生错误时,将会利用throw语句将异常类型抛出错误侦测区块,在对比catch语句中的异常类型后,寻找出并执行处理该异常类型的程序区块。当该区块执行完毕后,将继续执行catch语句后的程序。 9.2.1 异常处理的机制 * C++面向对象程序设计 异常处理的执行过程分成以下几个步骤: 控制通过正常的顺序执行到达try语句,然后执行try块内的代码保护段。 如果在保护段执行期间没有引起异常,就不执行跟在try块后的catch子句,程序从异常被抛掷的try块后跟随的最后一个catch子句后面的语句继续执行下去。 9.2.1 异常处理的机制 * C++面向对象程序设计 如果在保护段执行期间或在保护段调用的任何函数中有异常被抛掷,则从通过throw操作数创建的对象中创建一个异常对象。 如果匹配的处理器未找到,则运行函数terminate将被自动调用,而函数terminate的默认功能是调用abort终止程序。 如果找到了一个匹配的catch处理程序,且它通过值进行捕获,则其行参通过拷贝异常对象进行初始化。 9.2.1 异常处理的机制 * C++面向对象程序设计 9.2.2 异常处理的规则 编写异常处理程序的规则是: 如果预料某段程序代码(或对某个函数的调用)有可能发生异常,就将它放在try子句之后。 如果某段程序中出现了自己不能处理的异常,就可以使用throw语句来抛掷出这个异常,将它抛掷给调用者。 * C++面向对象程序设计 catch子句后的复合语句用来处理由throw表达式抛掷的异常。 当异常被抛掷以后,catch子句便依次被检查,若某个catch子句的异常类型声明与被抛掷的异常类型一致,则执行该段异常处理程序。 9.2.2 异常处理的规则 * C++面向对象程序设计 例:处理除零异常 #include iostream using namespace std; int try_modulus(int,int); void main()
您可能关注的文档
- buzz marketing概要1.ppt
- byron she walks in beauty 美与媚概要1.ppt
- Business travel概要1.pptx
- Business Meals概要1.pptx
- Butterfly概要1.ppt
- by example of Kevin Carter’s tragedy最终版概要1.ppt
- Butterfly tie蝴蝶结英文介绍PPT概要1.ppt
- B站80分答案06月16日概要1.doc
- B班蓝鸽平台第一次作业概要1.doc
- B级历年作文概要1.ppt
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
最近下载
- 准噶尔盆地南缘山前带石油地质综合评价.pdf VIP
- 2012届松江区高三英语二模试卷.doc VIP
- 2012奉贤区高三二模英语含答案.doc VIP
- 云南大学博士、硕士研究生学位论文写作规范-2025.docx VIP
- 2008学年奉贤区调研测试高三英语试卷及答案.doc VIP
- 最新人教版六年级上册数学1-8单元单元测试卷及期中期末卷(含答案).pdf VIP
- [黄浦区2009学年度第一学期期终基础学业测评高三英语附答案.doc VIP
- 2025至2030中国C反应蛋白(CRP)试验行业产业运行态势及投资规划深度研究报告.docx
- 2009学年奉贤区调研测试高三英语试卷(附答案).doc VIP
- 噬神者:爆裂 怪物素材获取方法.pdf VIP
原创力文档

文档评论(0)