[工学]c++面向对象程序设计课件 第8章未讲

[工学]c++面向对象程序设计课件 第8章未讲

ID:36284699

大小:79.00 KB

页数:31页

时间:2019-05-08

[工学]c++面向对象程序设计课件 第8章未讲_第1页
[工学]c++面向对象程序设计课件 第8章未讲_第2页
[工学]c++面向对象程序设计课件 第8章未讲_第3页
[工学]c++面向对象程序设计课件 第8章未讲_第4页
[工学]c++面向对象程序设计课件 第8章未讲_第5页
资源描述:

《[工学]c++面向对象程序设计课件 第8章未讲》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第8章异常处理本章主要内容异常处理概述异常处理的语法应用实例2《面向对象技术与VisualC++》--第8章异常处理概述异常处理是由程序设计语言提供的运行时刻错误处理的一种方式。程序运行中的有些错误是可以预料但不可避免的,这是要力争做到允许用户排除环境错误,继续运行程序;至少要给出适当的提示信息。传统错误处理方法大致可以分为返回码机制和全局变量两种。3《面向对象技术与VisualC++》--第8章1.返回码机制这种处理错误的方法比较实用和简单,这也是经常采取的手段之一。对于小型的程序来说这种异常处理机制的缺点暴露不明显,对于一个需要多人开发的软件程序来说,它的弊端就非常明显!因为对于一个模块

2、的实现者来说有的人返回值0代表错误;有的人返回值0代表正确,非0代表错误。解决方法可以用一致性的条文来控制。通常的,这些返回码就在一个公共的.h文件中以宏的形式存在。这样暂时解决了团队之间的一致性,但是这些都不是标准,兼容性太差。对于如此多的返回码要分别解释各自的意义,从调用者的角度来说,需要分别对返回码进行检查来处理异常,这样的代码往往就显得非常的臃肿,大大降低了可读性。4《面向对象技术与VisualC++》--第8章2.全局变量通过用一个全局变量来表示一次操作是否成功。这个方法在多线程中就非常头痛。另外在每次处理完异常之后就要复位这个变量,如果忘记这个步骤,就会引起其他操作的误解。5《面

3、向对象技术与VisualC++》--第8章异常处理实现C++语言提供对处理异常情况的内部支持。try,throw和catch语句就是C++语言中用于实现异常处理的机制。有了C++异常处理,程序可以向更高的执行上下文传递意想不到的事件,从而使程序能更好地从这些异常事件中恢复过来。6《面向对象技术与VisualC++》--第8章例8-2示例使用异常处理来处理错误。#includevoidmain(){intdivisor,dividend;doublequotient;try//异常测试块定义{cout<<"Pleaseinputdividend:";cin>>divid

4、end;cout<<"Pleaseinputdivisor:";cin>>divisor;if(divisor==0)throwdividend; //抛出异常quotient=dividend/double(divisor);cout<<"Theresultis:"<

5、hrow-catch是抛出和捕获异常的基本机制。Throw语句抛出异常(一个值),catch捕获异常。抛出一个异常后,try块会终止,转而执行catch块中的语句。catch块结束之后,会继续执行catch块之后的语句(前提是catch块中没有终止程序或者执行另外一些特殊的操作)。如果try块中没有抛出异常,那么在try块结束之后,程序将从catch块之后的语句继续执行。换言之,如果没有抛出异常,catch块会被忽略。9《面向对象技术与VisualC++》--第8章try块如果在函数内直接用throw抛出一个异常(或在函数调用时抛出一个异常),将在异常抛出时退出函数。如果不想在异常抛出时退出

6、函数,可以在函数体内创建一个特殊块用于解决程序中潜在的错误,在这个块中可以测试各种错误发生的可能性,通常称为测试块,它由关键字try引导。其定义格式如下:try{<可能发生错误的语句><语句><更多的语句>}10《面向对象技术与VisualC++》--第8章抛出异常通常将抛出的值直接称为一个异常,所以执行throw语句就称为抛出异常,可以抛出任意类型的一个值。其定义的格式如下:throw<抛出值的表达式>执行throw语句时,外围的try块就会停止执行。如果try块之后跟有一个合适的catch块,那么控制权就会转交给那个catch块。一般说来,throw语句几乎肯定要嵌入一个分支语句(比如i

7、f语句)中。11《面向对象技术与VisualC++》--第8章捕获异常抛出一个异常后,外围的try块会停止执行,并开始执行另一个部分的语句,也就是catch块。执行catch的过程称为捕获异常或者异常处理。一个异常被抛出以后,最终应该由某个catch块来处理。12《面向对象技术与VisualC++》--第8章一般说来,catch块参数主要完成两件事情:catch块参数前要加一个类型名,表示catch块可以捕获

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

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

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