面向对象程序设计第十二章异常处理机制优秀课件.ppt
《面向对象程序设计第十二章异常处理机制优秀课件.ppt》由会员分享,可在线阅读,更多相关《面向对象程序设计第十二章异常处理机制优秀课件.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面向对象程序设计第十二章异常处理机制第1页,本讲稿共29页 本章主要内容:本章主要内容:异常处理的任务与思想异常处理的任务与思想异常处理的实现异常处理的实现异常处理的应用异常处理的应用异常处理中的构造与析构异常处理中的构造与析构C+标准异常类标准异常类第2页,本讲稿共29页10.1 异常处理的任务与思想异常处理的任务与思想 软软件件不不仅仅要要保保证证能能正正确确完完成成任任务务,还还应应当当具具有有良良好好的的容错性容错性。容容错错性性是是指指软软件件不不仅仅在在正正确确操操作作的的条条件件下下能能正正确确运运行行,而而且且当当环环境境异异常常或或不不当当使使用用时时,依依然然能能合合理理处
2、处理理运运行行过过程程中中的的出出现现的的各各种种异异常常,而而不不会产生各种意想不到的后果。会产生各种意想不到的后果。程序中的各种异常通过分析完全可以预料程序中的各种异常通过分析完全可以预料。根根据据异异常常的的不不同同情情况况进进行行对对异异常常进进行行处处理理,如如给给出出提提示示信信息息、允允许许用用户户排排除除环环境境错错误误、继继续续运运行程序等都是异常处理的基本任务。行程序等都是异常处理的基本任务。第3页,本讲稿共29页1.传统的异常处理方法传统的异常处理方法 传统程序设计方法中,通常采用系统提供的中断函数或传统程序设计方法中,通常采用系统提供的中断函数或指令。指令。当被调用函数
3、发生异常或产生错误时,返回一个特当被调用函数发生异常或产生错误时,返回一个特定的值,以便调用函数检测错误标志,并作出处理;定的值,以便调用函数检测错误标志,并作出处理;或当错误产生时,释放所有资源,结束程序运行或当错误产生时,释放所有资源,结束程序运行第4页,本讲稿共29页常用中断函数或指令常用中断函数或指令 函数原型函数原型/指令指令 功功能能 头文件头文件void abort()中断程序执行,返回主中断程序执行,返回主C+窗口窗口 stdlib.hvoid assert(表达表达式式)若表达式的值为若表达式的值为false则中断程序执行,则中断程序执行,并显示中断所在的文件和所在行号并显示
4、中断所在的文件和所在行号 assert.hvoid exit(状态状态)中断程序执行,返回退出代码(状态中断程序执行,返回退出代码(状态值)值)stdlib.hreturn 表达式表达式终止函数执行终止函数执行,返回表达式的值返回表达式的值第5页,本讲稿共29页l#includeldoublediv(double,double);lvoidmain()lldoublex,y;lcouty;lcoutx;lif(x=0)lcoutDividedbyzero,Error!endl;lelsellcoutq=div(x,y)endl;llcoutEndoftheprogram.endl;lldoub
5、lediv(doublex,doubley)llreturny/x;l传统异常处理方法的优点是异常传统异常处理方法的优点是异常处理直接,系统运行开销少,适处理直接,系统运行开销少,适用于处理简单的局部错误与异常。用于处理简单的局部错误与异常。不足之处是异常处理代码分布于程序不足之处是异常处理代码分布于程序中可能出错的各个地方,异常处理代中可能出错的各个地方,异常处理代码与系统功能实现代码混在一起,降码与系统功能实现代码混在一起,降低程序的可读性与可维护性,不适合低程序的可读性与可维护性,不适合大型软件的开发,也不符合现代软件大型软件的开发,也不符合现代软件工程的理念工程的理念第6页,本讲稿共2
6、9页2.C+异常处理机制异常处理机制在在大大型型软软件件中中,由由于于函函数数之之间间具具有有各各自自明明确确的的分分工工并并可可能能存存在在调调用用关关系系,发发生生错错误误的的函函数数可可能能不不便便于于或或不不具具备备处处理理错错误误的条件。的条件。C+异异常常处处理理机机制制的的基基本本思思想想是是将将异异常常检检测测与与异异常常处处理理分分离离。产产生生异异常常的的函函数数不不一一定定需需要要具具备备异异常常处处理理的的能能力力,当当一一个个函函数数发发生生异异常常时时,它它抛抛出出所所发发生生的的异异常常或或错错误误,由由调调用用者者捕捕获获或或处处理理异异常常,若若上上层层调调用
7、用函函数数仍仍不不便便于于处处理理异异常常,还还可可以以进进一一步步抛抛出出异异常常,按按调调用用层层次次关关系系传传递递给更上一层处理。给更上一层处理。第7页,本讲稿共29页2.C+异常处理机制异常处理机制函数函数f()f()捕获并处理异常捕获并处理异常函数函数h()h()引发异常引发异常函数函数g()g()调用者调用者异常传播方向异常传播方向调用关系调用关系第8页,本讲稿共29页10.2 C+异常处理的实现异常处理的实现 C+语言提供了对异常处理机制的内部支持语言提供了对异常处理机制的内部支持由由try、throw和和catch语句提供了语句提供了C+用于实用于实现异常处理的机制。现异常处
8、理的机制。在异常处理机制的支持下,可以更合理、更在异常处理机制的支持下,可以更合理、更有效的处理程序运行过程中存在的各种异常现有效的处理程序运行过程中存在的各种异常现象。象。第9页,本讲稿共29页1.异常处理的语法异常处理的语法try-throw-catch是是C+异常处理机制的实现语句;异常处理机制的实现语句;程序中可能产生异常的部分应包含于程序中可能产生异常的部分应包含于try块之中;块之中;异常由紧随其后的异常由紧随其后的catch语句捕获和处理;语句捕获和处理;throw语句的作用是抛出异常。语句的作用是抛出异常。第10页,本讲稿共29页异常处理程序的使用形式异常处理程序的使用形式tr
9、y语句;语句;catch(类型类型1参数参数1)与类型与类型1相关的异常处理语句;相关的异常处理语句;catch(类型类型2参数参数2)与类型与类型2相关的异常处理语句;相关的异常处理语句;catch(类型类型n参数参数n)与类型与类型n相关的异常处理语句;相关的异常处理语句;throw表达式使用格式如下:表达式使用格式如下:throw 表达式;表达式;第11页,本讲稿共29页 try try语句块实际上是程序代码的保护段,表明该程序语句块实际上是程序代码的保护段,表明该程序段在执行过程中可能会产生异常或出现错误;段在执行过程中可能会产生异常或出现错误;若预料某段程序代码或某个函数可能发生异常
10、或错误,若预料某段程序代码或某个函数可能发生异常或错误,就应当将之置于就应当将之置于trytry语句块之内;语句块之内;一旦该代码段或函数在调用过程中产生了异常情况,一旦该代码段或函数在调用过程中产生了异常情况,throwthrow语句将抛出这个异常,并通过语句将抛出这个异常,并通过throwthrow之后的表达式返回之后的表达式返回一个值;一个值;有关说明有关说明第12页,本讲稿共29页当函数出现了自己不能处理的异常,就可以使用当函数出现了自己不能处理的异常,就可以使用“throw throw 表达式表达式”将异常抛出;将异常抛出;throwthrow之后的之后的“表达式表达式”表示异常类型
11、,它在语法上与表示异常类型,它在语法上与returnreturn语句的语句的“表达式表达式”值类似;值类似;throwthrow语句表达式的值不能用来区分不同异常,所以语句表达式的值不能用来区分不同异常,所以当程序将要抛出多个异常,应该用不同类型的表达式值当程序将要抛出多个异常,应该用不同类型的表达式值相互区别;相互区别;有关说明有关说明(续续)第13页,本讲稿共29页catchcatch语句块是异常处理的程序代码,捕获和处理由语句块是异常处理的程序代码,捕获和处理由“throw表达式表达式”所抛出的异常。所抛出的异常。catch catch 之后的异常类型可以是任何有效的数据类型,它之后的异
12、常类型可以是任何有效的数据类型,它与函数的形参类似,既可以是与函数的形参类似,既可以是 intint、floatfloat等某个类型值,等某个类型值,也可以是引用及也可以是引用及C+C+的类,它用于指定的类,它用于指定catchcatch语句块所处理的语句块所处理的异常的类型;异常的类型;当异常被抛出后,当异常被抛出后,catchcatch块依次被检查块依次被检查 ,若某,若某catchcatch语语句块的异常类型与被抛出的异常类型一致,则执行该异常句块的异常类型与被抛出的异常类型一致,则执行该异常处理程序段。处理程序段。有关说明有关说明(续续)第14页,本讲稿共29页在一个在一个trytry
13、语句块内,异常处理程序将按照它出现的语句块内,异常处理程序将按照它出现的位置先后顺序进行检查。若找到一个匹配的异常类型,位置先后顺序进行检查。若找到一个匹配的异常类型,后面的异常处理都将被忽略;后面的异常处理都将被忽略;如果异常类型声明是一个省略号如果异常类型声明是一个省略号()(),则表示,则表示catchcatch语句可以处理任何类型的异常;语句可以处理任何类型的异常;类型为省略号的类型为省略号的catchcatch处理程序必须是处理程序必须是trytry块的最后一块的最后一段处理程序。段处理程序。有关说明有关说明(续续)第15页,本讲稿共29页double div(double x,do
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 第十二 异常 处理 机制 优秀 课件
限制150内