从零开始学C++之异常(二):程序错误、异常(语法、抛出、捕获、传播)、栈展开

本文详细介绍了C++中的程序错误类型,包括编译错误和运行时错误,重点讲解了异常处理机制,包括异常语法、抛出、捕获和传播。异常在发生时会导致栈展开,确保局部对象的析构。同时讨论了异常与构造函数的关系,以及如何避免内存泄漏。
摘要由CSDN通过智能技术生成

一、程序错误

编译错误,即语法错误。程序就无法被生成运行代码。
运行时错误

不可预料的逻辑错误

可以预料的运行异常

例如:

动态分配空间时可能不会成功

打开文件可能会失败

除法运算时分母可能为0

整数相乘可能溢出

数组越界……


二、异常

(一)、异常语法

throw  表达式;

try
{
    //try语句块
}
catch(类型1  参数1)
{
    //针对类型1的异常处理
}
catch (类型2  参数2)
{
    //针对类型2的异常处理
}

catch (类型n  参数n)
{
    //针对类型n的异常处理
}


(二)、异常抛出

可以抛出内置类型异常也可以抛出自定义类型异常
throw抛出一个类对象会调用拷贝构造函数
异常发生之前创建的局部对象被销毁,这一过程称为栈展开


(三)、异常捕获

一个异常处理器一般只捕捉一种类型的异常
异常处理器的参数类型和抛出异常的类型相同
…表示可以捕获任何异常


 C++ Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值