12_容错及异常处理基础.ppt

12_容错及异常处理基础.ppt

ID:18068042

大小:339.00 KB

页数:22页

时间:2018-09-13

12_容错及异常处理基础.ppt_第1页
12_容错及异常处理基础.ppt_第2页
12_容错及异常处理基础.ppt_第3页
12_容错及异常处理基础.ppt_第4页
12_容错及异常处理基础.ppt_第5页
资源描述:

《12_容错及异常处理基础.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十章容错及异常处理基础清华大学郑莉C++语言程序设计2本章主要内容异常处理的基本思想抛出异常捕获异常异常对象标准程序库异常处理异常规范3异常处理的基本思想程序运行中的有些错误是可以预料的,例如发生诸如除数为零、内存申请不成功、硬盘文件被移动或者被损坏等的情况。程序在运行到发生异常之时,应该对所发生的情况做相关的工作之后再退出,把当前控制权交给上一级的函数。C++语言提供对处理异常情况的支持。try、throw和catch语句就是C++语言中用于实现异常处理的机制。异常处理的基本思想4抛出异常抛出异常throw表达式的语法为:throw表达式如果某段程

2、序中发现了自己不能处理的异常,就可以使用throw表达式抛掷这个异常,将它抛掷给调用者。throw的操作数表示异常类型,语法上与return语句的操作数相似,如果程序中有多处要抛掷异常,应该用不同的操作数类型来互相区别,操作数的值不能用来区别不同的异常。抛出异常5例12-1:处理函数中除数为零的异常(简单异常处理函数)#includeusingnamespacestd;intDivide(intx,inty){if(y==0)throwy;returnx/y;}intmain(){try{cout<<“5/2=”<

3、,2)<usingnamespacestd;classZeroExcep{public:ZeroExcep():message(“

4、Errorbydividingzero!”){}//除零异常constchar*GetMessage(){returnmessage;}private:constchar*message;};doubledivide(intnum,intdenum){if(denum==0)throwZeroExcep();//抛出异常returnstatic_cast(num)/denum;}抛出异常8例12-2:异常处理类中除数为零的异常(抛出异常类)voidmain(){intnum1,num2;cout<<“Pleaseinputtwointe

5、rgers:”;while(cin>>num1>>num2){try{cout<<”Theresultis:”<

6、bydividingzero!运行结果:抛出异常10捕获异常当异常被抛掷以后,catch子句便依次被检查,若某个catch子句的异常类型声明与被抛掷的异常类型一致,则执行该段异常处理程序。如果异常类型声明是一个省略号(…),catch子句便处理任何类型的异常,但这段处理程序必须是try块的最后一段处理程序。try-catch块的语法如下try复合语句catch(异常类型声明)复合语句catch(异常类型声明)复合语句捕获异常11例12-3:求给定数的平方根(捕获负数异常)#include#includeusingnam

7、espacestd;doubledsqrt(doubled){if(d<0)throw1;return(sqrt(d));}抛出异常12例12-3:求给定数的平方根(捕获负数异常)intmain(){intx;while(true){cout<<“Pleaseinputapositiveinterger:”;cin>>x;try{cout<

8、tiveinterger:82.82843Pleaseinputapositiveinterg

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。