C++超基础:异常处理——上

一、异常处理

1、throw语句将异常抛出,如果当前函数没有try...catch语句能够处理,那么当前函数将立即返回

2、异常被传递到上层调用函数,仍然需要try...catch语句的处理,如果上层函数也没有能力处理该异常,则异常继续向更上层的函数传递,如此循环

3、如果在函数调用栈里面所有函数都没有能力处理该异常,则程序异常终止

4、同一个try语句可以跟上多个catch语句块,同一个try语句可以抛出多种不同类型的异常,不用类型的异常由不用的catch模块处理(自上而下逐一匹配,不会进行默认类型转换)

/*test.cpp*/
#include <iostream>

using namespace std;

#define DIV_ZERO_ERROR -1

double Div(double a, double b)
{
	if (b > -0.00000001 && b < 0.00000001)
	{
		throw DIV_ZERO_ERROR;
	}
	return a / b;
}

int main()
{
	try
	{
		cout<<Div(1, 1.1)<<endl;
		cout<<Div(2, 0)<<endl;
		cout<<Div(3, 4)<<endl;
	}
	catch (int error)
	{
		cout<<"Exectption: "<<error<<endl;
	}

	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值