C++基础
异常处理
定义:捕获逻辑错误或者语法错误,进行推导
try
try{
//有可能异常的语句
}
catch
catch{
//捕获异常语句
}
throw
抛出异常
异常处理的好处:在抛出异常之后,会将之前的创建的类的对象进行释放。
创建自定义的
栈的解旋释放
#include <iostream>
#include <cstring>
using namespace std;
class myexception
{
public:
myexception(const char *msg)
{
cout<<"error constructor!"<<endl;
strcpy(this->msg,msg);
}
const char * getmessage()const
{
return msg;
}
private:
char msg[100];
};
class demo
{
public:
demo()
{
cout<<"constructor!"<<endl;
}
~demo()
{
cout<<"disconstructor!"<<endl;
}
};
void fun()
{
demo d;
throw myexception("throw fun exception!");
cout<<"error!!"<<endl;
}
int divide(int a,int b)
{
char c = 'a';
if(b == 0)
throw c;
return a/b;
}
void myunexpected()
{
printf("error exception!\n");
throw 0;
}
int main()
{
try
{
fun();
}
catch (myexception &e)
{
printf("the exception is %s\n",e.getmessage());
}
cout<<"main end!"<<endl;
return 0;
}