- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C__第十章
第十章 异常处理 10.1 概述 10.2 抛出异常 10.3 异常捕获 10.4 程序举例 10.5 小结 10.1 概述 定义 程序员在编写程序时,应该充分考虑到各种可能出现的意外情况,有针对性地安排代码进行处理。 C++提供了专门用于处理错误的机制,称为异常处理(Exception Handling). 错误类型 程序有可能出现的一类错误是语法错误,这可以在C++编译器的帮助下迅速排除;另一类是运行时发生的错误,又分为逻辑错误和运行异常。 逻辑错误是由于程序设计时考虑不周全,往往由用户操作错误而引发。 运行异常主要是由系统的运行环境造成的,例如堆内存空间不足,无法满足用户动态内存分配的请求。 异常机制 出现错误的模块往往不具备处理错误的能力,这时它就抛出一个异常,希望上层模块能够捕获并处理这个异常。 如果上层模块也不能处理这个异常,还可以继续向上传播,直到异常被专门的异常处理模块捕获并处理为止。 如果程序始终没有理会并处理这个异常,最终它会被C++系统捕获。 10.2 抛出异常 C++抛出异常的关键字是throw,其语法形式为: throw 表达式; 说明:throw语句的表达式与return语句的表达式在形式上相似。return语句返回表达式的值,throw语句主要返回表达式的类型,作为catch块分析和捕捉的依据。 异常规格声明 C++语言提供了异常规格声明。异常规格声明出现在函数的声明语句中,位于形参列表之后。 语法形式: 类型 函数名(形参列表) throw(异常列表); 例如: void fun(int x) throw(A,B,C); 重新抛出异常 有时捕获到异常后,可能需要在程序中重新抛出刚刚捕获的异常。这时只需加入无表达式的throw语句即可。 catch(…) { … throw; } 10.3 异常捕获 编写C++程序时,一般在try块中列出可能出现异常的代码段,在紧随其后的catch块中安排处理异常的代码。 try块的作用是把throw语句和catch块建立关联,使得异常抛出后能够找到相应的异常处理部分。 关键字try try { … throw(异常名); //抛出异常 … } 关键字catch catch(异常类型声明) { … } 说 明 catch块必须紧跟在try块的后面。catch块可以有多个,以分别处理不同类型的异常。而且所有的catch块都必须是连续的。 如果catch的异常类型声明是省略号(…),则该catch块可以捕获任何还没有被处理的任何类型的异常。显然这样的catch块应该安排在try块之后,所有catch块的最后面。 例10.1 异常处理。 #includeiostream.h void fun(int i) int main() { int i; for(i=1;i=2;i++) { try { fun(i); } --- 案 例 catch(int) { cout捕获整型异常!endl; } catch(double) { cout捕获双精度实型异常!endl; } } --- 案 例 void fun(int i) { switch(i) { case 1:throw 1; case 2:throw 2.0; } }
您可能关注的文档
- 苏教新版七年级英语下册第三单元测试卷.doc
- 《地籍与房产测量》实验指导书.doc
- 自考前复习重要因素.doc
- 海洋资源概论知识点总结.doc
- 时态综合训练 new 10.doc
- 选调面试试题.doc
- 名仕家装销售流程.ppt
- 农药保管及领用管理制度 2011.04.08 .doc
- 三级考试英语语法练习.doc
- 小学语文三年级上册目录.doc
- 2023咸阳职业技术学院招聘笔试真题参考答案详解.docx
- 2023四川化工职业技术学院招聘笔试真题及参考答案详解.docx
- 2023哈尔滨职业技术学院招聘笔试真题及参考答案详解.docx
- 2023商洛职业技术学院招聘笔试真题及答案详解1套.docx
- 2023呼伦贝尔职业技术学院招聘笔试真题参考答案详解.docx
- 2023南阳农业职业学院招聘笔试真题参考答案详解.docx
- 2023天津公安警官职业学院招聘笔试真题带答案详解.docx
- 2023年上海电机学院招聘笔试真题参考答案详解.docx
- 2023年四川艺术职业学院招聘笔试真题参考答案详解.docx
- 2023安徽体育运动职业技术学院招聘笔试真题及答案详解一套.docx
最近下载
- 北京市海淀区六年级下册期末卷及答案.pdf VIP
- 石家庄市2025年高三年级教学质量检测(一)数学试卷(含答案).pdf
- 4.1树与二叉树教学设计2023—2024学年浙教版(2019)高中信息技术选修1.docx
- 如何上好一堂美术课课件.pptx
- 商法学 课件( 马工程) 第8--11章 证券法---破产法.pptx
- 济宁三号煤矿8.0 Mt-a新井设计 综采工作面沿空掘巷技术浅析.docx VIP
- ASUS华硕ROG - 玩家国度机箱ROG Z11 OLED editionROG Z11 user's manual for multiple languages.pdf
- T-CAQ 10204-2017 质量信得过班组建设准则.pdf
- 2025年山东省实验中学高三一模高考英语试卷试题(含答案详解).pdf VIP
- 医学免疫学(第7版)PPT课件 第二章 免疫器官和组织.pptx
文档评论(0)