异常被抛出后,从try起,到异常被抛出前,这期间在栈上构造的所有对象,都会被自动析构,析构的顺序与构造的顺序相反这个过程被称为栈解旋
//异常的基本语法
//异常类
class My_exception
{
public:
My_exception()
{
cout<<"构造函数调用"<<endl;
}
~My_exception()
{
cout<<"析构函数调用"<<endl;
}
};
int divide(int x,int y)
{
if(y == 0)
{
throw y;
}
return x/y;
}
//异常跨函数
//异常必须处理
int mian()
{
try{
divide(10,0)
}catch(int e)
{
cout<<"divide by 0"<<"e"<<e<<endl;
}
return 0;
}
c++异常处理
程序运行时常会碰到一些异常情况,例如:做除法的时候除数为 0;用户输入年龄时输入了一个负数;用 new