您的位置:首页 > 编程语言 > C语言/C++

c++异常抛出和接收机制

2017-01-12 19:04 288 查看
        c++语言中定义了一套关于异常的抛出throw 和接收catch机制:

        1、其中抛出的异常类型可以是一个类对象,某一类型的数据等,

          如,抛出某一类型的数据:int x;throw x 等

                 抛出某一类的对象:throw Exception();

        2、抛出异常的位置,

                可以在try中写,如

try{
throw Exception(1);
}catch(Exception e){
;
}
              可以写在函数名的后方,如
void func() throw(int,Exception) //表明抛出的类型是int 和Exception的错误(但c++的vs2005编译器中这样定义同样可以抛出其它类型错误)
void func() throw(...)               //表明可以抛出任意类型的错误
        3、对抛出异常的接收机制
try{

}catch(Exception e){                 //只能接收Exception类型的错误

}catch(...){                         //能够接收任意类型的输出错误

}

      4、下举个实例

class Exception{
int type;
public:
Exception(int i){type=i;}
void printStackTrace(){
switch(type){
case 1:cout<<"current error!"<<endl;break;
default: cout<<"error!"<<endl;break;
}
}
};
void testThrow() throw(int,Exception){
throw Exception(2);
};
int _tmain(int argc, _TCHAR* argv[])
{
try{
testThrow();
}catch(Exception e){
e.printStackTrace();
}catch(...){
cout<<"Unknown Error"<<endl;
}
return 0;
}         其中Exception是自己定义的一个错误类型,testThrow是写的抛出错误异常函数,能够抛出int和Exception
     类型的错误,在main函数中使用try,catch来处理错误。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: