- 异常处理机制:暂缓问题处理,不在当前函数中处理,在其他调用者中处理
- 什么是异常,任何东西都可以认为是异常,错误只是异常的一种
- 异常一旦被抛出,不做处理,如果引发异常,会调用默认的abort终止程序
- 捕获和处理异常
throw抛出异常,(可以理解为返回值,值是任何类型都可以,使我们处理异常一个参照)
try(检查,捕获)和catch(处理异常)
//try 与catch必须是一起出现,并且他们{}不能省略
try
{
//正常需要检查是否存在异常代码
}
catch(类型)//理解为switch中case语句
{
//处理是根据抛出数据类型决定如何处理
}
//一个try可以对应多个catch
try
{
//...
}
catch(int)
{
}
catch(double)
{
}
catch(string)
{
}
//catch 和 if else _if 执行机制是一样的,只能执行一个匹配项
//删减符 ... 任何类型异常都捕获
//catch(...)
#include
using namespace std;
int divisor(int a, int b)
{
if (b == 0)//什么是异常
throw 0;//怎么抛出
return a / b;
}
void print(int a,int b)
{
cout << divisor(a, b);
}
int main()
{
try
{
print(1, 0);//引发异常不做处理
//print(1,0);
cout << "别的代码" << endl;
}
catch (int)
{
cout << "除数不能为 0" << endl;
}
catch (...)//捕获任何类型的异常
{
cout << "除数不能为 0" << endl;
}
return 0;
}
- 异常处理中的传参
catch(int a) //隐藏一个传参 *** 作
第12节 C++模板欢迎分享,转载请注明来源:内存溢出
评论列表(0条)