C++ 异常

  • C++11 不再建议使用异常规范
// 异常规范 只能抛出 int float char 三种类型的异常 C++11以后不再建议使用
void func1() throw(int, float, char){
    throw "string"; // terminate called after throwing an instance of 'char const*'
}
// 不能抛出任何类型的异常 OK
void func2() throw(){
    throw -1; // terminate called after throwing an instance of 'int'
}
// 可以抛出任何类型的异常
void func3(){
    throw "error";
}
int main()
{
    try{
        func1();
    }
    catch(char const * e){
        cout << e << endl;
    }
    catch(...){ // 捕获所有异常
        cout << "捕获未知异常" << endl;
    }
    
    return 0;
}