C++类型信息和异常处理介绍

一、类型信息

typeid 用于获取数据类型的信息,返回值是type_info类型的对象,需要加头文件typeinfo。
type_info类型:
    name() 返回基本类型的缩写,返回自定义类型的名字。
    同时还支持 == != 用于判断两种数据是否是同一种类型。

注意:如果用于判断父子类型的指针或引用,它并不能准确判断出实际的类对象,但是如果父类中有虚函数则可以。

二、异常处理

C++异常处理是一种错误的处理方式,系统使用信号,C语言使用返回值。

1、抛异常

    把一个包含错误信息的数据,返回给调用者,这种行为叫抛异常。
    throw 数据;
    当执行throw语句时,函数会停止,数据会抛出函数的调用者,功能与return相似,不同的是抛出的数据如果不捕获则程序就会停止运行。
    注意:不能抛出局部对象的指针或引用。

2、捕获异常

    try{
        可能抛出异常的代码
    }
    catch(类型 对象) // 根据数据类型进行异常捕获
    {
        处理异常,如果无法处理可以继承向上抛。
    }
    catch(类型 对象)
    {
        ...
    }
    注意:异常在捕获时并不是精准匹配,而是自上而下,异常捕获时,子类要写在父类之前。

函数的异常声明:
返回值类型 函数名(参数列表) throw(类型1,类型2,…)
{

}
它表示了该函数可能会产生的异常类型,方便调用者捕获。

    注意:如果抛出的声明之外的异常,侧程序直接结束不会进入捕获阶段。
    注意:如果没有写异常声明,则表示任何类型的异常都可能抛出。
    注意:throw() 表示该函数不会抛出异常。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值