C程序设计《异常处理》.ppt
《C程序设计《异常处理》.ppt》由会员分享,可在线阅读,更多相关《C程序设计《异常处理》.ppt(20页珍藏版)》请在三一办公上搜索。
1、异常处理,第10章 异常处理,本章学习要点,一个好的程序不仅要保证能实现所需要的功能,而且还应该有很好的容错能力。在程序运行过程中如果有异常情况出现,程序本身应该能解决这些异常,而不是死机。本章介绍异常处理的基本概念、C+异常处理语句、析构函数与异常处理。通过本章的学习,掌握了C+异常处理的机制,我们就可以在编制程序时灵活地加以运用,从而使我们编制的程序在遇到异常情况时能摆脱大的影响,避免出现死机等现象。,第10章 异常处理,10.1 异常处理的概念及C+异常处理的基本思想10.2 异常处理的实现10.3 学生信息管理系统中的异常处理,10.1 异常处理的概念及C+异常处理的基本思想,程序中常
2、见的错误有两大类:语法错误和运行错误。在编译时,编译系统能发现程序中的语法错误(如关键字拼写错误,变量名未定义,语句末尾缺分号,括号不配对等),程序员通过错误提示可以进行修改。,有的程序虽然能通过编译,也能投入运行,但是在运行过程中会出现异常,得不到正确的运行结果,甚至导致程序不正常终止或出现死机现象,这些都说明程序中存在运行错误。运行错误相对来说比较隐蔽,是程序调试中的一个难点,该错误又可分为逻辑错误和运行异常两类。逻辑错误是由设计不当造成的,如对算法理解有误、在一系列计算过程中出现除数为0、数组的下标溢出等。这些错误只要我们在编程时多加留意是可以避免的。但是,运行异常是由系统运行环境造成的
3、,导致程序中内存分配、文件操作及设备访问等操作的失败,可能会造成系统运行失常并瘫痪。,在运行没有异常处理的程序时,如果运行情况出现异常,由于程序本身不能处理,程序只能终止运行。如果在程序中设置了异常处理,则在运行情况出现异常时,由于程序本身已设定了处理的方法,于是程序的流程就转到异常处理代码段处理。需要说明的是:只要程序运行时出现与人们期望的情况不同,都可以认为是异常,并对它进行异常处理。因此,所谓异常处理是指对程序运行时出现的差错以及其他例外情况的处理。,10.2 异常处理的实现,10.2.1 异常处理语句C+处理异常的机制由3个部分组成:检查(try)、抛出(throw)和捕捉(catch
4、)。把需要检查的语句放在try块中,throw用来当出现异常时抛出一个异常信息,而catch则用来捕捉异常信息,如果捕捉到了异常信息,就处理它。try-throw-catch构成了C+异常处理的基本结构,形式如下:try if(表达式1)throw x1if(表达式2)throw x2if(表达式n)throw xn,catch(异常类型声明1)异常处理语句序列 catch(异常类型声明2)异常处理语句序列 catch(异常类型声明n)异常处理语句序列 这里,try语句块内为需要受保护的待检测异常的语句序列,如果怀疑某段程序代码在执行时有可能发生异常,就将它放入try语句块中。当这段代码的执行
5、出现异常时,即某个if语句中的表达式的值为真时,会用其中的throw语句来抛掷这个异常。,throw语句语法:throw 表达式;throw语句是在程序执行发生了异常时用来抛掷这个异常的,其中表达式的值可以是int、float、字符串、类类型等,把异常抛掷给相应的处理者,即类型匹配的catch语句块。如果程序中有多处需要抛掷异常,应该用不同类型的操作数来互相区别。throw抛出的异常,通常是被catch语句捕获。catch语句块是紧跟在try语句块后面的,即try块和catch块作为一个整体出现,catch块是try-catch结构中的一部分,必须紧跟在try块之后,不能单独使用,在二者之间也
6、不能插入其他语句。但是在一个try-catch结构中,可以只有try块而无catch块。即在本函数中只检查而不处理,把catch块放在其他函数中。一个try-catch结构中只能有一个try块,但却可以有多个catch块,以便与不同类型的异常信息匹配。在执行try块中的语句时如果出现异常执行了throw语句,系统会根据throw抛出的异常信息类型按catch块出现的次序,依次检查每个catch参数表中的异常声明类型与抛掷的异常信息类型是否匹配,当匹配时,该catch块就捕获这个异常,执行catch块中的异常处理语句来处理该异常。,在catch参数表中,一般只写异常信息的类型名,如:catch(
7、double)。系统只检查所抛掷的异常信息类型是否与catch参数表中的异常声明类型相匹配,而不检查它们的值。假如变量a,b,c都是int型,即使它们的值不同,在throw语句中写throw a、throw b或throw c的作用也均是相同的。因此,如果需要检测多个不同的异常信息,应当由throw抛出不同类型的异常信息。异常信息类型可以是C+系统预定义的标准类型,也可以是用户自定义的类型(如结构体或类)。如果由throw抛出的异常信息属于该类型或其子类型,则catch与throw二者匹配,catch捕获该异常信息。注意:系统在检查异常信息数据类型的匹配时,不会进行数据类型的默认转换,只有与所
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 异常处理 程序设计 异常 处理
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5426155.html