C++课件-异常处理.ppt

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

面向对象程序设计

(Object-OrientedProgramming)

第7章异常处理机械工业出版社第7章异常处理主要内容包括:1.异常处理的基本思想2.C++中异常处理的实现异常处理的思想程序运行中有些错误是可以预料但不可避免的,如内存空间不足、硬件上文件已被移动、打印机未连接好等系统运行环境造成的错误——运行环境错误;有些函数本身无法排除错误,引发异常,由调用函数处理;允许用户排除错误,继续运行程序;至少给出适当的提示信息,不能轻易出现死机,更不能出现灾难性后果——容错能力;编程时充分考虑各种意外情况,并给予恰当的处理——异常处理。C++中的异常处理C++的异常处理使得异常的引发和处理不必在同一函数中,即异常的引发在底层函数(被调用函数)中,处理由上层(调用函数)来解决,而且错误可以一直传播,直到被解决或由C++运行系统处理(自动调用运行函数terminate,由它调用abort终止程序)。异常处理的语法异常的抛出:throw表达式;异常处理:try复合语句catch(异常类型声明)复合语句catch(异常类型声明)复合语句……异常处理的执行过程控制通过正常的顺序到达try语句,执行try后保护段;如果执行期间没有引起异常,不执行catch子句,继续执行紧跟在最后一个catch后的程序。如果在保护段执行期间或保护段调用的任何函数中有异常,则找到合适的处理程序进行处理(catch语句)如果没有找到合适的异常处理程序,则自动调用函数terminate,由它调用abort中止程序中止程序的运行。C++中异常处理voidmain(){ char*buf; try { buf=newchar[512]; if(buf==0) throw内存分配失败; } catch(char*str) { cout异常发生!strendl; }}C++中异常处理例:处理除零异常C++中异常处理注1:抛掷异常与异常处理程序间是按数据类型的严格匹配来捕获的,如果程序中有多处要抛掷异常,则应用不同的操作数类型来相互区别,操作数的值不能用来区别不同的异常;注2:try后紧跟一个或多个catch块,目的是对发生的异常进行处理;注3:异常处理的目的是尽可能减少因错误而造成的破坏,并妥善处理它们,而不去影响其它部分程序的执行。*某段程序出现了异常,抛给调用者可能出现异常的语句放在try后异常处理程序捕获throw抛出的异常引发异常当用new分配内存失败时触发一个字符型异常。intDiv(intx,inty){ if(y==0)throwy;//抛掷整型异常returnx/y;}voidmain(){try{coutDiv(5,2)endl; coutDiv(6,0)endl; }catch(int){coutdivingzero.\n;}coutok.endl;}经理固定工资获得属性值计算总工资销售员销售额获得属性值计算总工资工人固定工资工时获得属性值计算总工资销售经理固定工资销售额获得属性值计算总工资职员姓名编号工龄总工资获得属性值计算总工资显示信息例:数据的校验。#includeiostream#includestringusingnamespacestd;classEmployee{protected:charName[30],Num[5];intWork_Age;floatTotal_Salary;public:virtualvoiddisplay()=0;virtualvoidCount_Salary()=0;virtual~Employee(){}virtualvoidSet(){intf=0;cout输入姓名:;do{ try{cinName; for(inti=0;Name[i]!=\0;i++) if(toupper(Name[i])=Z||toupper(Name[i])=A) {f=1; throw(Na

文档评论(0)

金华 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档