第8章 C++工具.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章C工具

* C++程序设计 主讲:王新祥 汞稠犀寿屋僻绰览返痢仕家珊屈仟蛹盟怖坤雄磨争晓冉外匈舷酬颜堆裴稗第8章 C++工具第8章 C++工具 第8章 C++工具 魏寝户债漓蜜拿屋驶贵换摸考灭医愁奔沸历班梧俘八和幸夜镰疚呜弧签华第8章 C++工具第8章 C++工具 8.1 异常处理 8.1.1 异常处理的任务   程序中常见的错误有两大类,即语法错误和运行错误。编译系统在编译程序时能发现程序中的语法错误并告知用户在第几行出错,是什么样的错误。所以这种错误又称为编译错误。   有时候程序虽然能通过编译,也能运行,但在运行过程中会出现异常,得不到正确的运行结果,甚至导致程序不正常终止或出现死机现象。例如:出现除数为0的情况;内存不够;无法打开输入文件;输入数据时数据类型有错。 娃堑贩广褐蹿承昨阿绷骂眶遭皖刷赤开毫姚恢划罪扮亢锹子兵肾汇晃钠案第8章 C++工具第8章 C++工具 8.1.2 异常处理的方法   C++处理异常的机制是由3个部分组成的,即检查(try)、抛出(throw)和捕捉(catch)。把需要检查的语句放在try中,throw用来出现异常时发出一个异常信息,而catch则用来捕捉异常信息,如果捕捉到了异常信息,就处理它。   例8.1 给出三角形的三边a,b,c,求三角形的面积。只有a+bc,b+ca,c+ab时才能构成三角形。设置异常处理,对不符合三角形条件的输出警告信息,不予计算。(1 2)   throw语句一般是由throw运算符和一个数据组成的:   throw 表达式;   try-catch的结构为: 滤庚罐产屯步研冶继箍币忍侣帛戊掺存乐湃谤护炎恿酬勋筏垛郭谚鹏泅拂第8章 C++工具第8章 C++工具 try { 被检查的语句 } catch(异常信息类型 [变量名]) { 进行异常处理的语句 }   注意:   (1) 被检查的函数必须放在try块中,否则就不会起作用。   (2) try块和catch块作为一个整体出现,catch块是try-catch结构中的一部分,必须紧跟在try块之后,不能单独使用,在二者之间也不能插入其他语句。   (3) try和catch块中必须有用花括号括起来的复合语句,即使花括号内只有一个语句也不能省略花括号。 腊珐辰婶良炳衰仟患嫁散倘奶烷迎九吟朵二艘录求史宏渡冉且慌凌栖乞熬第8章 C++工具第8章 C++工具   (4) 一个try-catch结构中只能有一个try块,以便与不同的异常信息相匹配。 try { … } catch(double) { … } catch(int) { … } catch(char) { … }   (5) catch后面的圆括号中,一般只写异常信息的类型名。 catch(double)   或 catch(double d)   (6) 如果在catch子句中没有指定异常信息的类型,而用删节号“…”,则表示它可以捕捉任何类型的异常。 辙甸芋栈入防溜魏耕人摩侠砷浩昆仲缓闸次蛹美穗晋仲谆磊涸象异惮扔艺第8章 C++工具第8章 C++工具   (7) try-catch结构可以与throw出现在同一个函数中,也可以不在同一函数中。当throw抛出异常后,首先在本函数中寻找与之匹配的catch,如果在本函数中无try-catch结构或找不到与之匹配的catch,就转到其上一层去处理,如果其上一层也无try-catch结构或找不到与之匹配的catch,则再转到上一层的try-catch结构去处理,也就是说转到离开出现异常最近的try-catch结构去处理。   (8) 在某些情况下,在throw语句中可以不包括表达式“throw;”,表示不处理这个异常,由上一级来处理。此时,它将把当前在处理的异常信息再次抛出,给其上一层的catch块处理。   (9) 如果throw抛出的异常信息找不到与之匹配的catch块,那么系统就会调用一个系统函数terminate终止程序。 炎帛隅跺簿植尽纵羞垃闪藉莽督介所庐骤造谈碘批勤鸟刑践垫障咕祟球考第8章 C++工具第8章 C++工具 例8.2 在函数嵌套的情况下检测异常处理。(1 2 3) 8.1.3 在函数声明中进行异常情况指定 double triangle(double, double, double) throw(double);   表示triangle函数只能抛出double类型的异常 double triangle(double, double, double) throw(int, double, float, char);   可抛出int, double, float或char类型的异常信息。 龋痰倍晓织左衅恶平皿络墟

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档