C++异常处理机制

本文详细介绍了C++的异常处理机制,包括异常处理的3个组成部分:try、throw和catch,以及对象作为异常类型、栈解退过程、exception类的使用,特别是stdexcept和bad_alloc异常类。此外,还讨论了未捕获异常时的终止处理和自定义终止函数。
摘要由CSDN通过智能技术生成

C++异常机制

1.异常处理的3个组成部分

  1. 使用try块
  2. throw引发异常
  3. catch捕获异常

使用:

try{

    throw [对象];
    try块中放可能会引发异常的调用等操作
}
catch(类型 变量名){
    catch会捕获和圆括号中类型相同的异常(通过throw引发的)
}

一个try块可以有多个catch块

执行过程:

首先执行try块中的代码,如果没有引发异常,跳过catch,向下执行;如果try块中的代码引发了异常,则通过函数的调用链向上跳转,直到找到与之匹配的catch块。

注意,如果main(),也就是最上层的调用函数都没有匹配的catch块,这个异常就会变成未捕获异常,这时,系统会调用terminate()函数,terminate()函数默认调用abort()函数。

abort()函数向标准错误流发送消息,并结束程序的运行。

举例:

首先声明并定义一个会引发异常的函数

double devide(const double a, const double b) {
    if (0 == b)
        throw "error : 除数不能为0";
    return a / b;
}

使用try-catch

int main(void) {

    double a, b;
    while (cout << "请输入两个数: "
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值