- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VC 异常处理在C++发展的后期,有的C++编译系统根据实际工作的需要,增加了一些功能,作为工具来使用,其中主要有模板(包括函数模板和类模板)、异常处理、命名空间和运行时类型,以帮助程序设计人员更方便地进行程序的设计和调试工作。1997年ANSI C++委员会它们纳入了ANSII C++标准,建议所有的C++编译系统都能实现这些功能。这些工具是非有用的,C++的使用者应当尽量使用这些工具,因此本书对此作简要的介绍,以便为日后的进一步学习和使用打下初步基础。? ?在第3章的11节已介绍了类模板。在本章中主要介绍异常处理和命名空间,应当注意,期的C++是不具备这些功能的,只有近期的C++系统根据ANSIC++的要求,实现了这些功。请读者注意使用的C++版本。一、异常处理的任务? ?程序编制者总是希望自己所编写的程序都是正确无误的,而且运行结果也是完全正确的。但是这几乎是不可能的,智者千虑,必有一失,不怕一万,就怕万一。因此,程序编制者不仅要考虑程序没有错误的理想情况,更要考虑程序存在错误时的情况,应该能够尽快地发现错误,消除错误。语法错误:在编译时,编译系统能发现程序中的语法错误(如关键字拼写错误,变量名未定义,语句末尾缺分号,括号不配对等),编译系统会告知用户在第几行出错,是什么样的错误。由于是在编译阶段发现的错误,因此这类错误又称编译错误。有的初学者写的并不长的程序,在编译时会出现十几个甚至几十个语法错误,有人往往感到手足无措。但是,总的来说,这种错误是比较容易发现和纠正的,因为它们一般都是有规律的,在有了一定的编译经验以后,可以很快地发现出错的位置和原因并加以改正。运行错误:有的程序虽然能通过编译,也能投入运行。但是在运行过程中会出现异常,得不到正确的运行结果,甚至导致程序不正常终止,或出现死机现象。例如:??.在一系列计算过程中,出现除数为0的情况。? ?? ??.内存空间不够,无法实现指定的操作。? ?? ??.无法打开输入文件,因而无法读取数据。? ?? ??.输入数据时数据类型有错。? ?由于程序中没有对此的防范措施,因此系统只好终止程序的运行。这类错误比较隐蔽,易被发现,往往耗费许多时间和精力,这成为程序调试中的一个难点。在设计程序时,应当事先分析程序运行时可能出现的各种意外的情况,并且分别制订出相应的处理方法,这就是程序的异常处理的任务。需要说明,在一般情况下,异常指的是出错(差错),但是异常处理并不完全等同于对出错的处理。只要出现与人们期望的情况不同,都可以认为是异常,并对它进行异常处理。例如,在输入学生学号时输入了负数,此时程序并不出错,也不终止运行,但是人们认为这是不应有的学号,应予以处理。因此,所谓异常处理指的是对运行时出现的差错以及其他例外情况的处理。二、异常处理的方法C++处理异常的机制引入? ?在一个小的程序中,可以用比较简单的方法处理异常,例如用if语句判别除数是否为0,如果是。则输出一个出错信息。但是在一个大的系统中,包含许多模块,每个模块义包含许多函数,函数之间又五相调用,比较复杂。如果在每一个函数中都设置处理异常的程序段,会使程序过于复杂和庞大。因此,C++采取的办法是:如果在执行一个函数过程中出现异常,可以不在本函数中立即处理,而是发出一个信息,传给它的上一级(即调用它的函数),它的上级捕捉到这个信启后进行处理。如果上一级的函数也不能处理,就再传给其上一级,由其上一级处理。如此逐级上送,如果到最高一级还无法处理,最后只好异常终止程序的执行。? ?这样做使异常的发现与处理不由同一函数来完成。好处是使底层的函数专门用于解决实际任务,而不必再承担处理异常的任务,以减轻底层函数的负担,而把处理异常的任务上移到某一层去处理。例如在主函数中调用十几个函数,只需在主函数中设置处理异常即可,而不必在每个函数中都设置处理异常,这样可以提高效率。C++处理异常的机制组成:C++处理异常的机制是由3个部分组成的,即检查(try)、抛出(throw)和捕捉(catch)。把需要检查的语句放在try块中,throw用来当出现异常时发出(形象地称为抛出,throw的意思是抛出)一个异常信息,而catch则用来捕捉异常信息,如果捕捉到厂异常信息,就处理它:例1?给出三角形的三边a,b,c,求三角形的面积。只有a+bc,b+ca,c+ab时才能构成三角形。设置异常处理,对不符合三角形条件的输出警告信息,不予计算。#include iostream#include cmathusing namespace std;int main(){?double triangle(double,double,double);? ?double a,b,c;? ?cinabc;? ?while(a0 b0 c0){?couttria
您可能关注的文档
最近下载
- 《SPSS实战与统计思维》读书笔记.pptx VIP
- 2025年新疆投资发展(集团)有限责任公司及所属公司公开招聘(42人)笔试备考试题及答案解析.docx VIP
- 《应急救援技能培训》课件.ppt VIP
- 临床技术操作规范-妇产科(11版).doc
- ISO 14001 2015 中英文.doc VIP
- 2025辽宁省交通建设投资集团有限责任公司招聘16人笔试历年参考题库附带答案详解.docx
- 2025年水平定向钻市场调查报告.docx
- 美国发展历程.ppt VIP
- 【农业农村部】中国农业展望报告(2025—2034).docx
- DB34_T4098.2-2022_建筑固废再生作道路材料应用技术规程第2部分:路基工程_安徽省.docx VIP
文档评论(0)