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(...)