C++异常处理机制全解.docx

C++异常处理机制全解.docx

ID:57631396

大小:21.64 KB

页数:9页

时间:2020-08-29

C++异常处理机制全解.docx_第1页
C++异常处理机制全解.docx_第2页
C++异常处理机制全解.docx_第3页
C++异常处理机制全解.docx_第4页
C++异常处理机制全解.docx_第5页
资源描述:

《C++异常处理机制全解.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C++异常处理机制全解▌异常处理(Exceptionhandling)●返回一个错误码进行异常处理(C语言):例:boolfunc(floata,floatb,float&c){if(b==0){returnfalse;}c=a/b;returntrue;}intmain(){floata=10;floatb=0;floatc=0;boolresult=func(a,b,c);if(!result){cout<<"Thefuncfails!"<

2、//func1();//func2();return0;}●try-throw-catch语句(C++);例:voidfunc(floata,floatb,float&c){if(b==0){//如果b为0,则抛出字符串“Dividedbyzero!”;throw"Dividedbyzero";//throw出来的东西可以是任何类型,甚至可以是类的对象;}c=a/b;}intmain(){floata=10;floatb=0;floatc=0;try{//测试条件;func(a,b,c);//func1();//func2();}catch(co

3、nstchar*str){//捕获异常信息;cout<

4、如果throw抛出了异常,异常类型如果与catch块后面的类型匹配,catch块内的代码将会被执行,在try语句后面可以有多个catch块,程序会寻 找第一个相匹配的catch块,实行catch块的语句代码,然后跳到最后一个catch块的下一行代码,如果没有匹配的catch块,则异常返回上一层try- catch语句,如果没有相应的catch发现,程序将会终结。★catch块不能访问try块里面定义的临时变量。★try-throw-catch的三种写法:例://1voidfunc(){floatx,num,den;...//initializen

5、umanddentry{//把操作放到try块里面,不良的写法;if(den==0){throw"Dividedbyzero";}x=num/den;}//...}//2floatdivide(floata,floatb){//在函数体中实现操作,推荐写法;if(b==0){throw"dividedbyzero";}returna/b;}voidfunc(){floatx,num,den;//initializenumanddentry{x=divide(num,den);}catch(constchar*error){cout<

6、}//...}//3floatdivide(floata,floatb){if(b==0){throw"dividedbyzero";}returna/b;}floatmiddle(floata,floatb){//嵌套写法,推荐写法;returndivide(a,b);}voidfunc(){floatx,num,den;//initializenumanddentry{x=middle(num,den);}catch(char*error){cout<us

7、ingnamespacestd;floatdivide(inta,intb){if(b==0){throw"dividedbyzero";}returnfloat(a)/float(b);}floatmiddle(inta,intb){try{returndivide(a,b);}catch(constchar*str){cout<<"Caughtbyfunctionmiddle."<

8、y{x=middle(num,den);}catch(constchar*error){cout<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。