C++异常处理

异常处理分离了接收和处理错误代码。这个功能理清了编程者的思绪,也帮助代码增强了可读性,方便了维护者的阅读和理解。异常处理(又称为错误处理)功能提供了处理程序运行时出现的任何意外或异常情况的方法。异常处理使用try、catch和finally关键字来尝试可能未成功的操作,处理失败,以及在事后清理资源。

左边调用者先调用f3()再调用f2()再调用f1(),右边是异常处理顺序

常见的异常:

1、数组下标越界

2、除数为0

3、内存不足

#include <iostream>
#include <stdlib.h>
using namespace std;
class Exception 
{
public:
	virtual void printException()
	{
		cout<<"Exception--printException"<<endl;
	}
	virtual ~Exception()
	{

	}
};
class IndexException : public Exception
{
public:
	virtual void printException()
	{
		cout<<"提示越界"<<endl;
	}
};
void test ()
{
	throw 10;
}
int main()
{
	try
	{
		test();
	}
    catch (int &e)
	{
		cout<<e<<endl;
	}
	
	system("pause");
	return 0;
}

这样我们就能捕获到异常,而且能打印出具体的数据

引用主要是不用建立临时变量节省资源,int也可以换成double string

#include <iostream>
#include <stdlib.h>
using namespace std;
class Exception 
{
public:
	virtual void printException()
	{
		cout<<"Exception--printException"<<endl;
	}
	virtual ~Exception()
	{

	}
};
class IndexException : public Exception
{
public:
	virtual void printException()
	{
		cout<<"提示越界"<<endl;
	}
};
void test ()
{
	throw IndexException();
}
int main()
{
	try
	{
		test();
	}
    catch ( IndexException &e)
	{
		e.printException();
	}
	
	system("pause");
	return 0;
}

我们也可以这样

我们对他进行捕获之后就能知道是哪里出了异常也能进行相应的调试

也可以是catch(...)

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值