异常处理

    大规模应用程序往往具有下列特殊要求

    异常处理--1.更严格的正常运转时间以及更简装的错误检测和错误处理

        错误处理经常必须跨越独立开发的多个子系统进行

    命名空间--2.能够用各种库构造程序

    多重继承--3.更够处理更复杂的应用概念


异常处理

    使用异常梳理,程序中独立开发的各部分能够就程序执行期间出现的问题互相通信

程序的一个部分能够检测出本部分无法解决的问题,文问题检测

部分可以将问题传递给 转呗处理文繁体的其他部分

抛出一个对象给处理代码,通过这个对象的类型和内容

两个部分就能够就出现什么问题进行通信


catch的数据类型需要与throw出来的数据类型相匹配。

catch能够捕获多种数据类型的异常对象,所以它给程序员一种对异常对象更好的控制手段,使开发的软件系统有很好的可靠性

void func()
{
try{

//这里的程序代码完成真正复杂计算工作,这些代码在执行过程中

                //有可能抛出dataType1 ,type2 type3类型的异常对象

}

    catch( datatype1 & d1 )

{


}

catch( type2 & d2 )

{

}

catch( type 3 d3 )

{


}

catch( ... ){}//这是为了有更好的安全性和可靠性,避免上面的try block抛出了其他未考虑的异常对象时导致的程序

}


抛出类类型的异常

    异常是通过抛出对象而引发的,该对象的类型决定应该激活那个处理代码。

异常以类似于将实参传递给函数的方式抛出和捕获

异常可以是可传给非引用形参的任意类型的对象


执行throw的时候,不会执行跟在throw后面的语句,

而是将控制从throw转移到匹配的catch, 该catch可以同一函数

中局部catch,也可以在直接或间接调用发生异常函数的另一个函数中

处理异常的时候会释放局部存储,所抛出的对象就不能再局部存储

而是用throw表达式初始化的一个称为异常对象的特殊对象。

异常对象由编译器管理。

而且保证驻留在可能被激活的任意catch都可以访问的空间。

异常对象将传递给对应的catch,并在处理完全之后撤销

    异常对象通过复制呗抛出表达式的结果创建,该结果必须是可以复制的类型。


异常对象与继承

     基类型都来自某个继承层次,标准异常定义在一个继承层次中

知道throw表达式的形式如何与因进程而相关的类型相互影响

异常与指针

    对指针解引用的结果是一个对象,其类型与指针的类型匹配

如果指针指向继承层次中的一种类型,指针无论对象那个实例类型是什么,异常对象那

对指针解引用的结果是一个对象,其类型和指针的类型匹配。

如果指针指向继承层次中的一种类型,指针所指向的类型就有可能与指针的类型不同

无论对象的实际类型是什么,异常对象的类型都与指针的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值