第十一篇 异常处理.ppt

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十一章异常处理 第十一章 异常处理 11.1 异常的概念和异常处理的基本思想 11.1 异常的概念和异常处理的基本思想 11.2异常处理机制 11.2异常处理机制 11.2.1 异常处理的语法 11.2.1 异常处理的语法 11.2.1 异常处理的语法 11.2.1 异常处理的语法 11.2.1 异常处理的语法 11.2.2 异常接口声明 11.2.3 嵌套的异常处理 11.2.4 异常的重新抛出 11.2.4 异常的重新抛出 11.3异常处理中的构造与析构 11.4 C++标准库的异常处理 11.4 C++标准库的异常处理 11.4 C++标准库的异常处理 11.4 C++标准库的异常处理 11.4 C++标准库的异常处理 11.5 程序实例 第十一章 异常处理 [例10.3] Array重新定义下标操作符[ ] templatetypename elemTypeclass Array{ int size; elemType * ia ; public: explicit Array(int sz=DefaultArraySize){ size=sz;ia=new elemType [size]; } ~ Array(){delete [] ia;} elemType operator[](int ix) const{ //下标运算符[ ]重载 if(ix0||ix=size){ //增加异常抛出,防止索引值越界 string eObj=out_of_range error in Array elemType ::operator[](); throw out_of_range(eObj);} return ia[ix]; } //保留原来[ ]的所有索引方式 private: int size; elemType * ia; }; [例10.3] Array重新定义下标操作符[ ] int main(){ int i; Arrayint arr; try{ for(i=0;i=DefaultArraySize;i++){ arr[i]=i+1; //写入ia[10]时出界 coutsetw(5)arr[i]; } coutendl; } catch(const out_of_range excp){ cerr\nexcp.what()\n; //打印out_of_range error in ArrayelemType::operator[]() return -1; } return 0; } * * 第十一章 异常处理   程序设计不仅应考虑程序的正确性,还要考虑程序的容错能力。在程序设计期间,要充分考虑程序运行时可能出现的各种异常问题,在出现各种异常情况时,程序应有适当的处理措施,不轻易出现死机,或退出系统,或发生数据丢失等灾难性后果,提高程序的健壮性。 C++提供了异常处理的机制。本章介绍异常的概念、C++的异常处理机制和方法。 学习目标: 1.理解异常的概念、异常处理处理的思想; 2.理解C++中try-throw-catch异常处理机制; 3.掌握异常处理方法,学会处理程序中常见的异常。 11.1 异常的概念和思想 11.3 异常处理中的构造与析构 11.2 异常处理的机制 11.5 程序实例 11.4 C++标准库的异常处理 运行异常(exception)是指程序在运行的过程中由于意外的结果,运行环境问题造成程序异常终止。运行异常可以预料但不可避免的。 因此为了保证程序的健壮性,必须要在程序中对运行异常进行预见性处理。对运行异常进行预见性处理称为异常处理。 异常传播方向 C++的异常处理机制使得异常的引发和处理不必在同一函数中,这样底层的函数可以着重解决应用问题,而不必过多地考虑对异常的处理。上层调用者则在适当的位置设计对不同类型异常的处理。 C++提供了一种异常处理机制。该异常处理机制能够把程序的正常处理和异常处理逻辑分开表示,使得程序的异常处理结构清晰,通过异常集中处理的方法,解决异常处理的问题。 异常处理机制的主体有两大部分:异常抛出区,异常处理区。结构见右图 11.2.2异常接口声明 11.2.1异常处理的语法 11.2.4异常的重新抛出 11.2.3嵌套的异常处理 C++异常处理由try…throw…catch组成 try语句块语法如下: try{ 复合语句 } th

文档评论(0)

xiaofei2001128 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档