H面向对象异常处理YH

H面向对象异常处理YH

ID:36538147

大小:842.10 KB

页数:52页

时间:2019-05-09

H面向对象异常处理YH_第1页
H面向对象异常处理YH_第2页
H面向对象异常处理YH_第3页
H面向对象异常处理YH_第4页
H面向对象异常处理YH_第5页
资源描述:

《H面向对象异常处理YH》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1-1知识回顾I/O流的概念输出流输入流2异常处理第八章1-3理解异常处理的概念掌握异常处理的实现掌握异常处理中对象的构造与析构理解名字空间的概述本章目标异常处理是C++语言中重要的错误处理机制,是提高程序容错性的一种手段。异常处理主要针对程序运行时出现的各种异常情况,提供发现,捕获异常的手段,并尽量减少异常对程序运行的影响。有的程序虽然经过编译、连接成为可以运行的程序,但在运行过程中难免会出现各种各样的问题,即使对那些所谓能“正常运行”的程序而言也是如此。程序中潜在的异常问题提出问题示例:#include#includeusingn

2、amespacestd;intmain(){floata,b,c;doublex1,x2;cout<<"请输入一元二次方程的系数a、b和c的值:"<>a;cout<<"b=";cin>>b;cout<<"c=";cin>>c;x1=(-b+sqrt(b*b-4*a*c))/(2*a);x2=(-b-sqrt(b*b-4*a*c))/(2*a);cout<<"方程的实根是:x1="<

3、许多潜在的“隐患”。程序运行可以检测到的一些非正常情况称为异常(exception)。如除数为0、数组越界访问、内存空间不够、输入/输出不正常(文件找不到、输入数据类型错等)等。异常是程序错误一种形式。分析问题程序中的错误按性质可分为语法错误、逻辑错误和异常3种。一般来说,异常的检测和处理要完成下列任务之一:(1)让“用户”知道程序出现了异常,并退出程序。(2)让“用户”知道程序出现了异常,允许“用户”选择继续使用程序。(3)在程序发生异常时,能够在不打扰“用户”的情况下继续程序的运行。C++语言异常处理机制的基本思想是将异常的检测与处理分离。当在一个函数体中检测到异

4、常条件存在,但无法确定相应的处理方法时,将引发一个异常,并由函数直接或间接调用检测并处理这个异常。这一基本思想用3个保留字实现:throw、try和catch。在一般情况下,被调用函数直接检测到异常条件的存在并使用throw引发一个异常(注意,C++语言的异常是由程序员控制引发的,而不是由计算机硬件或程序运行环境控制的);在上层调用函数中使用try检测函数调用是否引发异常,检测到的各种异常由catch捕获并作相应处理。异常处理实现在VC++6.0环境中,为了使用异常处理机制,需要进行如下设置(默认设置):(1)选择菜单中的project。(2)在弹出的下拉菜单中选择S

5、etting命令,出现Settings对话框。(3)打开C/C++选项卡。(4)在Category中选择C++Language。(5)选中Enableexceptionhandling复选框。在C++程序中,任何需要检测异常的语句(包括函数调用)都必须在try语句块中执行,异常必须由紧跟着try语句后面的catch语句来捕获并处理。因而,try与catch总是结合使用。1、异常处理的语法throw、try和catch语句的一般语法如下:throw表达式;try{//try语句块}catch(类型1参数1){//针对类型1的异常处理}catch(类型2参数2){//针对

6、类型1的异常处理}...catch(类型n参数n){//针对类型1的异常处理}异常处理的执行过程如下:(1)控制通过正常的顺序执行到达try语句,然后执行try块内的保护段。(2)如果在保护段执行期间没有引起异常,那么跟在try块后的catch子句就不执行,程序从异常被抛掷的try块后跟随的最后一个catch子句后面的语句继续执行下去。(3)如果在保护段执行期间或在保护段调用的任何函数中(直接或间接的调用)有异常被抛掷,则从通过throw运算数创建的对象中创建一个异常对象(可能包含一个复制构造函数)。(4)如果匹配的处理器未找到,则运行函数terminate将被自动调

7、用,而函数terminate的默认功能是调用abort终止程序。(5)如果找到了一个匹配的catch处理程序,且它通过值进行捕获,则其形参通过复制异常对象进行初始化。示例1:#includevoidmain(){char*buf;try{buf=newchar[512];if(buf==0)throw"内存分配错误!";cout<<"内存分配成功!"<intfun(int);voi

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

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

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