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

        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来处理错误。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值