异常

异常的处理
通过try-throw-catch语句
try
{
语句组
throw 异常类型;

}catch(异常类型)

catch可以有多个,至少有一个,catch还有一个可以处理任何异常的类型
try
{
throw 1;
}
catch(…){}

如果没有任何catch解决抛出的异常,程序就会调用terminate方法中断程序

异常可以再抛出,如果一个异常没有在本函数得到解决,那么它就会[抛到它的上一层函数

函数异常声明列表
void func()throw(int,double);这句话规定了函数可以抛出的异常类型,当然,如果你不想抛出异常,可以写throw();

栈解旋:从try到throw抛出异常前,栈上所有的对象都会被释放

异常的多态使用:
利用多态来实现printError同一个接口调用
抛出不同的错误对象

另外,C++还提供了了一套标准的异常库,主要就是让你抛出相应的异常
包含在头文件#include中
常见异常:
exception//这是所有异常的父类
{
bad_cast{};//new操作符不能正确分配内存

runtime_error//运行错误
{
	overflow_error;//上溢
	underflow_error;//下溢
	range_error;//边界错误
	system_error;//系统错误
}

logic_error //逻辑错误
{
	domain_error;//域错误
	invalid_argument;//非法参数
	out_of_range;//访问超界
	length_error;//通常指创建对象的尺寸太大
	future;//未知错误

}

bad_alloc{};

}
具体用法
void dowork()
{
try{
throw std::out_of_range(“访问出界”);//抛出异常
}
catch(exception e)
{
std::cout<<ex.what();//打出异常信息
}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值