欢迎来到天天文库
浏览记录
ID:50350248
大小:286.50 KB
页数:47页
时间:2020-03-08
《C++面向对象程序设计 教学课件 作者 李兰_第9章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、9.1异常的概念(ExceptionConcept)9.2异常处理机制及意义(MechanismandSignificanceofExceptionHandling)9.3标准异常(StandardException)9.4异常的捕获和处理(ExceptionCatchingandHandling)9.5异常处理中的构造与析构(ConstructorandDestructorinExceptionHandling)9.6开销(Spending)9.7常见编程错误(CommonProgrammingErrors)本章小结(ChapterSummary)习
2、题9(Exercises9)异常是指程序运行时出现的不正常情况,包括运行时发生的错误,如除数为零、存储空间不足或遇到意外的非法输入等等。异常存在于程序的正常功能之外,并要求程序立即处理。通过异常可以将问题的检测和解决分离,方便了程序的开发和设计。 异常处理提供了一种标准的方法以处理错误,发现可预知或不可预知的问题。这种方法允许开发者识别、查出和修改错漏之处。使用异常处理,程序中独立开发的各部分能够就程序执行期间出现的问题相互通信,并处理这些问题。9.1异 常 的 概 念(ExceptionConcept)1.try块(tryblock)错误处理部分
3、用try块来处理异常。2.throw表达式(throwexpression)系统通过throw表达式抛出异常,错误检测部分使用这种表达式来说明遇到了无法处理的错误。3.由标准库定义的一组异常类由标准库定义的一组异常类用来在throw和相应的catch之间传递有关的错误信息。9.2异常处理机制及意义(MechanismandSignificanceofExceptionHandling)在C++标准库中提供了一批标准异常类,用于报告在标准库中的函数遇到的问题,为用户在编程中直接使用和作为派生异常类的基类。 表9-1描述了这些标准异常类。9.3标准异常
4、(StandardException)表9-1标 准 异 常 类异常通过抛出对象引发,该对象的类型决定应该激活哪个处理代码。异常以类似于将实参传递给函数的方式抛出和捕获。完成函数调用时的异常测试,其异常对象的捕获和处理由try-catch结构实现,使得处理程序运行错误的编码变得方便、有效,并具有完全的结构化和良好的可读性。try-catch结构的一般形式如下:9.4异常的捕获和处理(ExceptionCatchingandHandling)try{…//被测试的程序代码}catch(异常类型异常对象名){…//异常处理的程序代码}9.4.1try
5、块(tryBlock)try块以关键字try开始,后面是用花括号括起来的语句序列块。try块的定义格式如下:try{语句}【例9-1】如果new或new[]不能分配所请求的存储空间,将抛出一个bad_alloc异常。可以通过如下方式检测存储空间的分配是否失败:int*ptr;…//其他代码try{//可能产生异常的语句ptr=newint;}catch(bad_alloc){cerr<<"new:unabletoallocatestorage…aborting";exit(EXIT_FAILURE);//EXIT_FAILURE定义在头文件cstd
6、lib.h中}…//分配成功后执行的代码9.4.2throw表达式(throwExpression)抛出异常的定义为throw表达式,由关键字throw以及尾随的表达式组成。其中,表达式的值称为一个异常,执行throw语句就称为抛出异常。【例9-2】处理除零异常的示例。#includeusingnamespacestd;intDiv(intx,inty);intmain(){try{//除法可能产生除0异常,因此将代码放入try块中cout<<"5/2="<7、,0)<8、对异常对象的处理有两种:(1)尝试解决程序运行错误,析构异常对象。(2)若无法解决程序运行错误 当前文档最多预览五页,下载文档查看全文 侵权申诉 举报 1 1 2 3 4 5 / 47 此文档下载收益归作者所有 下载文档 当前文档最多预览五页,下载文档查看全文 点击下载本文档
7、,0)<8、对异常对象的处理有两种:(1)尝试解决程序运行错误,析构异常对象。(2)若无法解决程序运行错误
8、对异常对象的处理有两种:(1)尝试解决程序运行错误,析构异常对象。(2)若无法解决程序运行错误
此文档下载收益归作者所有