小谈C++异常处理讲述.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
小谈C++异常处理 最近打算学习STL,所以先将之前的C++复习一遍打好基础 :-D 期末的日子也越来越近了,不能在像之前那样子有时间了,所以只能写一些更简单的东西啦. :-D C++提供了一种完善的异常处理机制,可以使用try和catch对代码进行保护,截获运行时的错误,还可以使用throw抛出一个异常对象. try{}块中代码运行时,如果出现异常,将按照catch{}块的顺序找到对应的异常对象进行处理 下面的程序展示了简单的try/catch异常处理,第一个try块throw出了一个int类型的异常,第二个try块throw出了一个double类型的异常.后面catch截获了对应的异常. #include stdio.h int main(void){ try{ printf(try:1\n); throw 1; } catch(int i){ printf(catch try:1 int:%d\n, i); } catch(double d){ printf(catch try:1double %f\n, d); } try{ printf(try:2\n); throw 1.2; } catch(int i){ printf(catch try:2 int:%d\n, i); } catch(double d){ printf(catch try:2 double:%f\n, d); } return 0; } 运行结果: try:1 catch try:1 int:1 try:2 catch try:2 double:1.200000 上面的程序只是针对每个异常类型进行处理,你也可以使用catch(…)来处理如何类型的异常. 下面的程序展示使用try/catch(…)来处理被0除的异常. #include stdio.h int main(void){ try{ printf(try:1\n); int a=0; int b=1/a; } catch(...){ printf(catch try:1\n); } return 0; } 运行结果: try:1 catch try:1 对于会抛出异常的函数我们也可以使用try来对其进行保护. 下面的程序就展示了这点,(其实和上面说的是一样的,这里关键是要引出下文) #include stdio.h void func(){ throw 1; } int main(void){ try{ printf(try:1\n); func(); } catch(int i){ printf(catch try:1 int:%d\n, i); } return 0; } 我们用catch到函数抛出的异常,还可以限定一个函数能够抛出的异常类型 在函数声明后面加上函数可能抛出的异常类型的列表. 如上面的func函数,可以改成下面的形式 void func() throw(int) { throw 1; } 如果给出的可能抛出的异常类型类表为空的话,表示不会抛出任何类型的异常 下面的程序就设置了函数的抛出异常类型类表为空,然后抛出了异常,于是程序被提前终止. void func() throw() { throw 1; } int main(void){ func(); return 0; } 运行结果: 我们也可以在截获到异常的时候继续抛出异常 #include stdio.h void func(){ try{ throw 1; } catch(int){ printf(catch func\n); throw; //继续抛出异常,然后函数返回 } printf(这条语句不会被执行\n); } int main(void){ try{ func(); } catch(int){ printf(catch main\n); } return 0; } 运行结果: catch func catch main 到此为止,上面只是对于C++异常处理简单的介绍一下,不够对于我目前的开发来说知道这些就够用了. 今晚是平安夜,祝大家快乐啊!

文档评论(0)

0520 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档