第12篇_异常处理.pptVIP

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
异常错误 在程序运行阶段由于系统异常原因而产生的错误称为异常错误 异常错误与程序设计错误是两码事 异常错误与程序设计错误 程序设计错误是指程序员在设计程序时由于人为因素所产生的错误。 异常错误是在程序运行时由于系统异常原因而产生的,不是程序员的失误所致。 如果不排除程序设计错误,程序就不能通过编译检查或运行结果不对。 如果不处理异常错误,程序执行时遇到异常情况就会突然终止或失控,使用户感到莫名其妙。 20009-3-24 * 面向对象程序设计 —— C++ 任课教师:刘丹 * 第12章 异常处理 异常(Exception) 是程序可能检测到的运行时刻不正常的情况。 最常见的异常包括 除数为0,数组越界访问,磁盘或者光盘读写失败,无效数据,内存耗尽,网络不通等。 异常总是代表着某些不该发生的事情发生了 * 第12章 异常处理——异常处理方法 方法一:在函数中设置处理异常的程序段。缺点:会使程序过于复杂和庞大。 方法二:发出一个异常信息传给它的上一级。上级捕捉到这个信息后进行处理。特点:效率高,程序代码简洁。 * 第12章 异常处理——C++异常处理机制 由检查(try)、抛出(throw)和捕捉(catch)三部分构成。注意: 把需要检查的语句放在try块中; throw用来当出现异常时发出一个异常信息; 而catch则用来捕捉异常信息,如果捕捉到了异常信息,就处理它。 20009-3-24 * throw语句一般是由throw运算符和一个数据组成的,其形式为: throw 表达式; try-catch的结构为: try { 被检查的语句 } catch(异常信息类型 [变量名]) { 进行异常处理的语句 } 第12章 异常处理——C++异常处理机制 * 第12章 异常处理——C++异常处理流程 (1) 首先把可能出现异常的、需要检查的语句或程序段放在try后面的花括号中。 (2) 程序开始运行后,按正常的顺序执行到try块,开始执行try块中花括号内的语句。如果在执行try块内的语句过程中没有发生异常,则catch子句不起作用,流程转到catch子句后面的语句继续执行。 (3) 如果在执行try块内的语句(包括其所调用的函数)过程中发生异常,则throw运算符抛出一个异常信息。throw抛出异常信息后,流程立即离开本函数,转到其上一级的函数(main 函数)。 * 在VC++6.0环境中,为了使用异常处理机制,需要进行以下设置: 打开Project Settings对话框。 选择C / C++选项卡。 在Category栏中选择C++ language。 选择Enable Exception Handling 。 第12章 异常处理——VC++设置 * 例 处理分母为零的异常 #includeiostream.h int Div(int x,int y); int main() { try { cout5/2=Div(5,2)endl; cout8/0=Div(8,0)endl; cout7/1=Div(7,1)endl; } catch(int) { coutexcept of deviding zero.\n; } coutthat is ok.\n; return 0; } int Div(int x,int y) { if(y==0) throw y; return x/y; } 程序运行结果如下: 5/2=2 except of deviding zero. that is ok. 20009-3-24 * 例12.1 给出三角形的三边a,b,c,求三角形的面积。只有a+bc,b+ca,c+ab时才能构成三角形。设置异常处理,对不符合三角形条件的输出警告信息,不予计算。 先写出没有异常处理时的程序: #include iostream #include cmath using namespace std; int main( ) {double triangle(double,double,double); double a,b,c; cinabc; while(a0 b0 c0) {couttriangle(a,b,c)endl; cinabc; } return 0; } 20009-3-24 * double triangle(double a,double b,double c) {double area; double s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); return area; } 运行情

文档评论(0)

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

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

1亿VIP精品文档

相关文档