C++异常处理

什么是异常处理

异常处理:是编程语言或计算机硬件中的机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件)
在C++中针对异常处理提供了一种标准的方法,用于处理程序运行时的错误,保证程序的健壮性、稳定性。但是异常处理的速度没有普通函数快,过多的异常处理会影响效率。
目的:对用户在程序中的非法操作进行控制和提示,以防程序崩溃。

C++异常处理方式

不再用if语句进行判断,有三个关键字,try,throw,catch
try-catch块

try{
	包含可能抛出异常的语句
}
catch(类型名[形参名]){
	处理异常的语句
}

try中放的是有可能出现异常的语句
catch中捕获并处理,捕获和处理的条件是抛出的异常类型与catch块参数类型相匹配
注意:在使用了try后,并非程序就不会崩溃,需要有以下两步
1、满足某个条件时显式的抛出一个异常
2、使用catch来匹配抛出的异常类型

异常处理的顺序:抛出异常->捕获异常->处理异常

抛出异常由程序员决定是什么异常、以及是否抛出异常,抛出何种异常

有一种可以捕获到任何类型异常的块如下(3.代替)

catch(...){
	cout<<"error"<<endl;
}

这种是保底的办法,通用性最强,所有异常都能捕获。一般将匹配程度高的catch放在前面,无参数的catch放在后面。

#include <iostream>

using namespace std;

bool func(float a,float b,float& c){
    //if(-0.000001<b && b<0.000001) return false;
    //if(b==0) return false;
    //1、显式的抛出异常
    if(-0.000001<b && b<0.000001) throw "错误:除数为0";
    c=a/b;
    return true;
}

int main() {
    float a=10,b=0,c=0;
    bool res;
    /*if(!res)
        cout<<"fail"<<endl;
    else
        cout<<"success"<<endl;*/
    try{
        res=func(a,b,c);
    }
    catch(const char* error){//参数和抛出的异常匹配
        cout<<error<<endl;
    }
    return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值