C++--异常(Exceptions)

 

 

 

C++--异常(Exceptions)

 

 

1.概况

 

       异常即程序运行是发生错误。在C语言中通常用返回值来判断异常,返回值可以是bool型,用true表示无异常,false表示有异常;也可以是整形,比如HRESULT,这样可以细化异常的类别。这种做法有很多缺陷,比如调用者忘记检查返回值,异常在多级调用栈中反复处理等。于是C++提供一套异常处理机制,将检查异常和处理异常分开,甚至能从多级调用栈中直接跳转到处理异常的代码,这是C的语法无法实现的。

 

      C++的异常机制提供了三个关键字:try、catch和throw。try用于检测异常;catch用于处理异常;throw用于抛出异常。

try

{

     被检查语句

     throw 异常

}

catch(异常类型)

{

     进行异常处理的语句1

}

 

 

2.基本语法

 

在程序执行时抛出(throw)一个基本类型的异常。一旦throw,响应的catch会响应并处理异常。如下面的catch(int e)用于处理整形异常。而catch (...)用于接收所有的异常。

 

try

{

         throw 20;

}

catch (int e)

{

         cout << "Anint exception occurred. Exception Nr. " << e << endl;

}

catch (double e)

{

         cout << "Andouble exception occurred. Exception Nr. " << e << endl;

}

catch(...)

{

         cout << "Andefault exception occurred"<< endl;

}

 

 

 

3.对函数抛出异常的限制

 

1.    如下声明一个函数,表明该函数可以抛出各种异常。

int myfunction (int param);

 

 

2.    如下声明一个函数,表明该函数只能抛出int类型的异常。

float myfunction (char param) throw (int);

 

 

3.    如下声明一个函数,表明该函数禁止抛出异常。如果抛出异常,则编译时会有警告。

int myfunction (int param) throw();

 

 

 

4.标准异常

 

    C++标准库STL提供了一个标准的异常类exception,在<exception>头文件中定义。

 

 

参考资料

 

http://www.cplusplus.com/doc/tutorial/exceptions/

 

http://www.cplusplus.com/reference/exception/exception/

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值