




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第10章异常处理 10.1 概述 10.2 抛出异常 10.3 异常捕获 10.1 概述程序员在编写程序时,应该充分考虑到各种可能出现的意外情况,有针对性地安排代码进行处理。C+提供了专门用于处理错误的机制,称为异常处理exception handling)。 错误类型程序有可能出现的一类错误是语法错误,这可以在C+编译器的帮助下迅速排除;另一类是运行时发生的错误,又分为逻辑错误和运行异常。逻辑错误是由于程序设计时考虑不周全,往往由用户操作错误而引发。运行异常主要是由系统的运行环境造成的,例如堆内存空间不足,无法满足用户动态内存分配的请求。 异常机制出现错误的模块往往不具备处理错误的能力,这时
2、它就抛出一个异常,希望上层模块能够捕获并处理这个异常。如果上层模块也不能处理这个异常,还可以继续向上传播,直到异常被专门的异常处理模块捕获并处理为止。如果程序始终没有理会并处理这个异常,最终它会被C+系统捕获。 10.2 抛出异常C+抛出异常的关键字是throw,其语法形式为: throw 表达式;throw语句的表达式与return语句的表达式在形式上相似。return语句返回表达式的值,throw语句主要返回表达式的类型,作为catch块分析和捕捉的依据。异常规格声明C+语言提供了异常规格声明。异常规格声明出现在函数的声明语句中,位于形参列表之后。其语法形式是:类型 函数名(形参列表) t
3、hrow(异常列表);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块的最后面。案例 for(i=1;i=2;i+) try fun(i); catch(int) cout捕获整型异常!endl; catch(double) cout捕获双精度实型异常!endl; v
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 用工管理面试题及答案
- 门诊内科出科总结
- 中国教育的目的
- 月字旁写字课课件
- 2025年中国男士牛仔裤行业市场全景分析及前景机遇研判报告
- 综合能源服务培训
- 怎样做好日常培训
- EHS基础知识培训
- 花山岩画的群体性活动元素融入舞蹈课堂教学的实践与探究
- 特殊关键工序培训
- 2024年内蒙古锡林郭勒盟事业单位人才引进历年【重点基础提升】模拟试题(共500题)附带答案详解
- 建设工程监理安全资料台帐建筑施工
- 浙江省温州市鹿城区2023-2024学年八年级下学期科学期末质量检测综合模拟卷
- 大树吊装专项施工方案
- (XX)XX县2021年度变更调查技术设计书
- 地震的应急逃生知识
- 药品配送服务应急预案
- 03 配电类“两种人”安规综合能力测试题库
- 人工智能伦理导论- 课件 第3、4章 人工智能伦理、人工智能风险
- 工业管道技术交底
- 危化品安全管理培训模板如何正确穿戴和使用防护装备
评论
0/150
提交评论