最新c c++语言程序设计(西电版第14章 异常处理(共18张ppt课件).pptx
《最新c c++语言程序设计(西电版第14章 异常处理(共18张ppt课件).pptx》由会员分享,可在线阅读,更多相关《最新c c++语言程序设计(西电版第14章 异常处理(共18张ppt课件).pptx(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一页,共十八页。14.1 异常处理机制异常处理机制14.2 异常处理的实现异常处理的实现14.3 异常规范异常规范(gufn)14.4 小结小结第二页,共十八页。lC+语言异常处理机制的基本思想是将异常的检测与处语言异常处理机制的基本思想是将异常的检测与处理分离。当在一个函数体中检测到异常条件存在,但却理分离。当在一个函数体中检测到异常条件存在,但却无法确定相应的处理方法时,该函数将引发一个异常,无法确定相应的处理方法时,该函数将引发一个异常,由函数的直接或间接调用者捕获这个异常并处理这个错由函数的直接或间接调用者捕获这个异常并处理这个错误。如果误。如果(rgu)程序始终没有处理这个异常,最
2、终它会被程序始终没有处理这个异常,最终它会被传到传到C+运行系统那里,运行系统捕获异常后,通常只运行系统那里,运行系统捕获异常后,通常只是简单地终止这个程序。是简单地终止这个程序。l由于异常处理机制使得异常的引发和处理不必由于异常处理机制使得异常的引发和处理不必在在同同一函数中。这样,底层的函数可以着重解决具体问一函数中。这样,底层的函数可以着重解决具体问题而不必过多地考虑对异常的处理;上层调用者可题而不必过多地考虑对异常的处理;上层调用者可以在适当的位置设计对不同类型异常的处理。以在适当的位置设计对不同类型异常的处理。第三页,共十八页。lC+的异常处理机制通过的异常处理机制通过throw、t
3、ry和和catch三个语句来实现。一般情况下,被三个语句来实现。一般情况下,被调用函数直接调用函数直接(zhji)检测到异常处理条件的检测到异常处理条件的存在,并使用存在,并使用throw引发一个异常;在上引发一个异常;在上层函数中,使用层函数中,使用try监测函数确定是否引监测函数确定是否引发异常;检测到的各种异常由发异常;检测到的各种异常由catch捕获捕获并作出相应的处理,从而使程序从这些并作出相应的处理,从而使程序从这些异常事件中恢复过来。异常事件中恢复过来。第四页,共十八页。lthrow语法语法(yf)ltry语法语法throw throw ;trytry 复合复合(fh)(fh)语
4、句语句 第五页,共十八页。catch(异常类型异常类型1 参数参数(cnsh)1) 复合语句复合语句1 /针对异常类型针对异常类型1的处理语句的处理语句catch(异常类型异常类型2 参数参数2) 复合语句复合语句2 /针对异常类型针对异常类型2的处理语句的处理语句catch(异常类型异常类型n 参数参数n) 复合语句复合语句n /针对异常类型针对异常类型n的处理语句的处理语句第六页,共十八页。l通过正常的顺序执行到达通过正常的顺序执行到达try语句语句(yj),然后执行,然后执行try块块内的保护段。内的保护段。l如果在保护段执行期间如果在保护段执行期间没有引起异常没有引起异常,那么跟在,那
5、么跟在try块后的块后的catch子句不执行。程序从子句不执行。程序从try块后面跟随的最块后面跟随的最后一个后一个catch语句之后的语句继续执行下去。语句之后的语句继续执行下去。l如果在保护段执行期间或在保护段调用的任何函数中如果在保护段执行期间或在保护段调用的任何函数中(直接或间接的调用直接或间接的调用)有异常被抛出,则通过有异常被抛出,则通过throw创创建一个异常对象建一个异常对象(这隐含指可能包含一个拷贝构造函数这隐含指可能包含一个拷贝构造函数)。第七页,共十八页。 在此处,编译器在执行代码中寻找一个能够处理抛掷类型异在此处,编译器在执行代码中寻找一个能够处理抛掷类型异常的常的ca
6、tch处理程序处理程序(或一个能处理任何类型异常的或一个能处理任何类型异常的catch处理程处理程序序)。catch处理程序按其在处理程序按其在try块后出现的顺序被检查。如果没有块后出现的顺序被检查。如果没有找到合适的处理程序,则继续检查下一个动态找到合适的处理程序,则继续检查下一个动态(dngti)封闭的封闭的try块查块查。此处理继续下去,直到最外层的封闭。此处理继续下去,直到最外层的封闭try块被检查完。块被检查完。l如果匹配的处理程序如果匹配的处理程序未找到未找到,则函数,则函数terminate()被自动调用,被自动调用,该函数的默认功能是终止程序。该函数的默认功能是终止程序。l如
7、果找到一个如果找到一个匹配的匹配的catch处理程序处理程序,且它通过值进行捕获,则,且它通过值进行捕获,则其形参通过其形参通过拷贝异常对象拷贝异常对象进行初始化。如果它通过引用进行捕获进行初始化。如果它通过引用进行捕获,则参量被初始化为指向异常对象在形参被初始化之后,则参量被初始化为指向异常对象在形参被初始化之后,“循环展循环展开栈开栈”的过程开始。的过程开始。l例例14.1 处理零异常。处理零异常。第八页,共十八页。lcatch处理程序的处理程序的出现顺序出现顺序很重要,因为很重要,因为在一个在一个try块中,异常处理程序是按照它出块中,异常处理程序是按照它出现的顺序被检查的。只要找到一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新c c+语言程序设计西电版第14章 异常处理共18张ppt课件 最新 c+ 语言程序设计 西电版第 14 异常 处理 18 ppt 课件
限制150内