欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C++语言程序设计进阶 (11).pdf

    • 资源ID:52867616       资源大小:303.41KB        全文页数:7页
    • 资源格式: PDF        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C++语言程序设计进阶 (11).pdf

    第 12 章 异常处理 本章主要内容 异常处理的基本思想与程序实现 异常处理中的构造与析构 标准程序库异常处理 小结 异常处理的思想与程序实现 异常处理的基本思想 异常处理的语法 例12-1处理除零异常/12_1.cpp#include using namespace std;int divide(int x,int y)if(y=0)throw x;return x/y;int main()try cout 5/2=divide(5,2)endl;cout 8/0=divide(8,0)endl;cout 7/1=divide(7,1)endl;catch(int e)cout e is divided by zero!endl;cout That is ok.endl;return 0;异常接口声明 一个函数显式声明可能抛出的异常,有利于函数的调用者为异常处理做好准备 可以在函数的声明中列出这个函数可能抛掷的所有异常类型。例如:void fun()throw(A,B,C,D);若无异常接口声明,则此函数可以抛掷任何类型的异常。不抛掷任何类型异常的函数声明如下:void fun()throw();异常处理中的构造与析构 自动的析构 找到一个匹配的catch异常处理后 初始化异常参数。将从对应的try块开始到异常被抛掷处之间构造(且尚未析构)的所有自动对象进行析构。从最后一个catch处理之后开始恢复执行。例 12-2 带析构语义的类的 C+异常处理/12_2.cpp#include#include using namespace std;class MyException public:MyException(const string&message):message(message)MyException()const string&getMessage()const return message;private:string message;class Demo public:Demo()cout Constructor of Demo endl;Demo()cout Destructor of Demo endl;void func()throw(MyException)Demo d;cout Throw MyException in func()endl;throw MyException(exception thrown by func();int main()cout In main function endl;try func();catch(MyException&e)cout Caught an exception:e.getMessage()endl;cout Resume the execution of main()endl;return 0;运行结果:In main function Constructor of Demo Throw MyException in func()Destructor of Demo Caught an exception:exception thrown by func()Resume the execution of main()标准程序库异常处理 标准异常类的继承关系 C+标准库各种异常类所代表的异常 标准异常类的基础 exception:标准程序库异常类的公共基类 logic_error表示可以在程序中被预先检测到的异常 如果小心地编写程序,这类异常能够避免 runtime_error表示难以被预先检测的异常 例 12-3 三角形面积计算 编写一个计算三角形面积的函数,函数的参数为三角形三边边长a、b、c,可以用Heron公式计算:设 2abcp,则三角形面积 Sppapbpc/12_3.cpp#include#include#include using namespace std;/给出三角形三边长,计算三角形面积 double area(double a,double b,double c)throw(invalid_argument)/判断三角形边长是否为正 if(a=0|b=0|c=0)throw invalid_argument(the side length should be positive);/判断三边长是否满足三角不等式 if(a+b=c|b+c=a|c+a=b)throw invalid_argument(the side length should fit the triangle inequation);/由Heron公式计算三角形面积 double s=(a+b+c)/2;return sqrt(s*(s-a)*(s-b)*(s-c);int main()double a,b,c;/三角形三边长 cout a b c;try double s=area(a,b,c);/尝试计算三角形面积 cout Area:s endl;catch(exception&e)cout Error:e.what()endl;return 0;运行结果1:Please input the side lengths of a triangle:3 4 5 Area:6 运行结果2:Please input the side lengths of a triangle:0 5 5 Error:the side length should be positive 运行结果2:Please input the side lengths of a triangle:1 2 4 Error:the side length should fit the triangle inequation 小结 主要内容 异常处理的基本思想、C+异常处理的实现、异常处理中的构造与析构 达到的目标 简单了解C+的异常处理机制

    注意事项

    本文(C++语言程序设计进阶 (11).pdf)为本站会员(刘静)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开