您的位置:首页 > 其它

异常抛出类型

2012-10-01 14:33 176 查看
#include <iostream>
#include <cstdlib>
using namespace std;

void transfer() throw(const char*,int,double) //如果不要throw语句,则说明捕捉任何异常。写了可能抛出的异常类型,就不会捕捉其他类型的异常了?
{
	cout << "开始转账业务处理" << endl;
	srand(time(0));
	int x = rand()%4;
	if(0 == x) throw "Take ERROR";
	//如果把下一句里的100改成'A', 那么等到抛出这个异常时,程序会提示“放弃”,中止?
	else if(1 == x) throw 100;
	else if (2 == x) throw 3.1415;
	cout << "转账业务处理成功" << endl;
}

int  main()
{
	try
	{
		cout << "开始转账" << endl;
		transfer();
		cout << "结束转账" << endl;
	}
	//按着顺序依次判断异常类型
	catch(const char* e)
	{
		cout << "处理字符串异常:" << e << endl;
	}
	catch(int e)
	{
		cout << "处理整数异常:" << e << endl;
	}
	catch(double e)
	{
		cout << "处理浮点数异常:" << e << endl;
	}
	//按照程序代码来看,这句是总也不会起作用的。
	catch(...) //处理任何异常,那是在异常出现后不符合前面的catch时才启用的
	{
		cout << "处理其他异常" << endl;
	}
	cout << "继续提供服务!" << endl;
	

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐