1 / 29
文档名称:

第10章 异常处理.ppt

格式:ppt   页数:29
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第10章 异常处理.ppt

上传人:中国课件站 2011/9/6 文件大小:0 KB

下载得到文件列表

第10章 异常处理.ppt

文档介绍

文档介绍:第10章异常处理
异常处理机制
异常处理的实现
异常处理中的构造与析构
异常处理机制
在一个大型软件中,由于函数之间有着明确的分工和复杂的调用关系,发现错误的函数往往不具备处理错误的能力。因此,C++语言异常处理机制的基本思想是将异常的检测与处理分离。当在一个函数体中检测到异常条件存在,但却无法确定相应的处理方法时,该函数将引发一个异常,由函数的直接或间接调用者捕获这个异常并处理这个错误。
如果程序始终没有处理这个异常,最终它会被传到C++运行系统那里,运行系统捕获异常后,通常只是简单地终止这个程序。
由于异常处理机制使得异常的引发和处理不必在同一函数中,这样,底层的函数可以着重解决具体问题而不必过多地考虑对异常的处理;上层调用者可以在适当的位置设计对不同类型异常的处理。
异常处理的实现
异常处理的语法

throw<表达式>;
当某段程序发现了自己不能处理的异常,就可以使用throw语句将这个异常抛掷给调用者。throw语句的使用与return语句相似,如果程序中有多处要抛掷异常,应该用不同的表达式类型来互相区别,表达式的值不能用来区别不同的异常。

try
{
复合语句
}
try语句后的复合语句是代码的保护段。如果预料某段程序代码(或对某个函数的调用)有可能发生异常,就将它放在try语句之后。如果这段代码(或被调函数)运行时真的遇到异常情况,其中的throw表达式就会抛掷这个异常。

catch(异常类型1参数1)
{
//针对异常类型1的处理语句
}
catch(异常类型2参数2)
{
//针对异常类型2的处理语句
}
...
catch(异常类型n参数n)
{
//针对异常类型n的处理语句
}
catch语句后的复合语句是异常处理程序,捕获由throw表达式抛掷的异常。异常类型声明部分指明语句所处理的异常类型,它与函数的形参相类似,可以是某个类型的值,也可以是引用。这里的类型可以是任何有效的数据类型,包括C++的类。当异常被抛掷以后,catch语句便依次被检查。
异常处理的执行过程
异常处理的执行过程如下:
①控制通过正常的顺序执行到达try语句,然后执行try块内的保护段。
②如果在保护段执行期间没有引起异常,那么跟在try块后的catch语句就不执行,程序从异常被抛掷的try块后跟随的最后一个catch语句后面的语句继续执行下去。
③如果在保护段执行期间或在保护段调用的任何函数中(直接或间接的调用)有异常被抛掷,则从通过throw创建的对象中创建一个异常对象(这隐含指可能包含一个拷贝构造函数)。
这一点上,编译器能够处理抛掷类型的异常,在更高执行上下文中寻找一个catch语句(或一个能处理任何类型异常的catch处理程序)。catch处理程序按其在try块后出现的顺序被检查。如果没有找到合适的处理程序,则继续检查下一个动态封闭的try块。此处理继续下去,直到最外层的封闭try块被检查完。
④如果匹配的处理器未找到,则terminate()将被自动调用,而函数terminate()的默认功能是调用abort终止程序。
⑤如果找到了一个匹配的catch处理程序,且它通过值进行捕获,则其形参通过拷贝异常对象进行初始化。如果它通过引用进行捕获,则参量被初始化为指向异常对象,在形参被初始化之后,“循环展开栈”的过程开始。这包括对那些在与catch处理器相对应的try块开始和异常丢弃地点之间创建的(但尚未析构的)所有自动对象的析构。

最近更新

2023年四川工业科技学院单招职业倾向性考试题.. 40页

2026年元宵节猜灯谜的作文300字 14页

2026年元宵节文案推文110句 9页

2023年四川长江职业学院单招职业适应性测试题.. 40页

2026年元宵节作文小学生300字 10页

2023年大连航运职业技术学院单招职业技能测试.. 39页

2026年元宵节一句话祝福语 10页

2023年天津城市职业学院单招职业适应性考试题.. 40页

2023年天津理工大学中环信息学院单招职业技能.. 42页

2023年天津铁道职业技术学院单招职业适应性考.. 40页

2026年儿童节特色活动方案 38页

2026年儿童节感想500字作文 19页

2023年宁德职业技术学院单招职业技能测试模拟.. 41页

2023年宁波职业技术学院单招职业适应性测试题.. 40页

2023年安徽中澳科技职业学院单招职业倾向性测.. 40页

2023年安徽工业职业技术学院单招职业适应性测.. 40页

2023年安徽林业职业技术学院单招综合素质考试.. 40页

2023年安徽艺术职业学院单招职业倾向性考试模.. 41页

2023年安阳学院单招职业适应性测试题库汇编 41页

2026年做火车站的心得体会 5页

2026年做文明有礼企业倡议书 7页

2026年做家务作文及心得 15页

2023年山东城市建设职业学院单招职业倾向性考.. 39页

2026年做一个真正的读书人演讲稿 9页

2026年值得努力的作文初三 6页

2023年广西省来宾市单招职业倾向性考试题库附.. 41页

2023年新疆博尔塔拉蒙古自治州单招职业倾向性.. 41页

2023年武汉警官职业学院单招职业技能考试题库.. 41页

2023年江西应用工程职业学院单招职业技能考试.. 41页

2023年海南工商职业学院单招职业技能考试题库.. 40页