1. try{} catch(){}
c++异常处理涉及到三个异常关键字:try、catch、throw
try
{
throw "error";
}
catch(const char* e)
{
cout<<"Hello error"<<endl;
}
try
{
std::bad_alloc t;
throw t;
}
catch(std::bad_alloc &e)
{
cerr <<e.what()<<'\n';
}
try
{
throw std::exception();
}
catch(...)//捕获所有异常
{
std::cerr << "Hello exception" << '\n';
}
std::exception是所有标准异常的基类。标准异常的继承关系如下:
2. 如何定义自己的异常
定义自己的异常MyException
struct MyException : public exception
{
const char * what () const throw ()
{
return "C++ Exception";
}
};
需要重载what方法。