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语言中的异常处理

c语言中的异常处理 一 前言: 异常处理,对于做面向对象开发的开发者来说是再熟悉不过了,例如在C#中有 try { ... } catch( Exception e){...} finally{ ..... } 在C++中,我们常常会使用 try{} ... catch(){} 块来进行异常处理。 说了那么多,那么到底什么是异常处理呢? 异常处理(又称为错误处理)功能提供了处理程序运行时出现的任何意外或异常情况的方法。 异常处理一般有两种模型,一种是终止模型,一种是恢复模型 终止模型:在这种模型中,将假设错误非常关键,将以致于程序无法返回到异常发生的地方继续执行.一旦异常被抛出,就表明错误已无法挽回,也不能回来继续执行. 恢复模型:异常处理程序的工作是修正错误,然后重新尝试调动出问题的方法,并认为的二次能成功. 对于恢复模型,通常希望异常被处理之后能继续执行程序.在这种情况下,抛出异常更像是对方法的调用--可以在Java里用这种方法进行配置,以得到类似恢复的行为.(也就是说,不是抛出异常,而是调用方法修正错误.)或者,把try块放在while循环里,这样就可以不断的进入try块,直到得到满意的结果. 二 面向对象中的异常处理 大致了解了什么是异常处理后,由于异常处理在面向对象语言中使用的比较普遍,我们就先以C++为例,做一个关于异常处理的简单例子: 问题:求两个数相除的结果。 这里,隐藏这一个错误,那就是当除数为0时,会出现,所以,我们得使用异常处理来捕捉这个异常,并抛出异常信息。 具体看代码: 1 #include iostream 2 #include exception 3 using namespace std; 4 class DivideError:public exception 5 { 6 public: 7 DivideError::DivideError():exception(){} 8 const char* what(){ 9 return 试图去除一个值为0的数字; 10 } 11 12 }; 13 double quotion(int numerator,int denominator) 14 { 15 if(0==denominator) //当除数为0时,抛出异常 16 throw DivideError(); 17 return static_castdouble(numerator)/denominator; 18 } 19 int main() 20 { 21 int number1; //第一个数字 22 int number2; //第二个数字 23 double result; 24 cout请输入两个数字: ; 25 while(cinnumber1number2){ 26 try{ 27 result=quotion(number1,number2); 28 cout结果是 :resultendl; 29 30 } //end try 31 catch(DivideError divException){ 32 cout产生异常: 33 divException.what()endl; 34 } 35 } 36 37 } 38 在这个例子中,我们使用了expection头文件中的exception类,并使DivideError类继承了它,同时重载了虚方法what(),以给出特定的异常信息。 而C#中的异常处理类则封装的更有全面,里面封装了常用的异常处理信息,这里就不多说了。 三 C语言中的异常处理 在C语言中异常处理一般有这么几种方式: 1.使用标准C库提供了abort()和exit()两个函数,它们可以强行终止程序的运行,其声明处于stdlib.h头文件中。 2.使用assert(断言)宏调用,位于头文件assert.h中,当程序出错时,就会引发一个abort()。 3.使用errno全局变量,由C运行时库函数提供,位于头文件errno.h中。 4.使用goto语句,当出错时跳转。 5.使用setjmp,longjmp进行异常处理。 接下来,我们就依次对这几种方式来看看到底是怎么做的:

文档评论(0)

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

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档