【C++异常处理机制】

一、异常处理机制

1、异常:

程序执行时遇到的任何错误或意外行为。

2、异常处理:

异常处理就是当程序出现这些错误后,给与恰当的处理,为程序提供退出的安全通道。

3、异常可能性:

1、代码或调用的代码(如共享库)中有错误;
2、操作系统资源不可用;
3、公共语言运行库遇到意外情况(如无法验证代码);
4、用户的错误操作等

4、传统的异常处理方法:

弊端:可读性差,将程序代码与处理异常的代码混在一起。
要求:需要更加灵活、程序可读性强、降低程序员劳动强度的处理方式。

二、C++异常处理机制:

在遇到异常时,系统不是马上终止运行,而是允许用户排除错误,继续运行程序,至少给出出错的提示信息。
在大型复杂的软件系统中,函数之间有明显的分工和复杂的调用关系,发现错误的函数一般不具备处理错误的能力。
这时只能导致一个异常,并抛出异常,如果调用者也不能处理就传递给它的上级调用者,这样一直上传到能处理为止。
如果始终没有处理就上交到C++运行系统,运行系统调用abort函数强行终止整个程序。

在这里插入图片描述

三、C++异常处理的实现

C++语言中:
try、throw和catch子句就是用于实现异常处理机制的程序语句:

1、try

try语句块中包含可能出现异常的代码,如果运行时出现了错误,就抛掷异常对象的类型和异常内容。

2、throw

throw抛掷异常事件的类型和异常内容。

3、catch

catch捕获并处理异常事件,定义异常处理程序。

四、标准程序库异常的用法

在这里插入图片描述

try{
	int* p = new int[10];
}
catch (std::bad_alloc& e) {
	std::cerr << e.what() << std::endl;
}

溢出详解1
溢出详解2

五、异常处理中的构造与析构

1、异常抛出之前构造异常对象
2、catch字句捕获异常时,将异常对象传递给catch形参
3、catch字句执行完成,调用异常对象的析构函数,异常对象自动销毁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值