欢迎来到天天文库
浏览记录
ID:36174987
大小:212.50 KB
页数:13页
时间:2019-05-06
《09ch13第13讲异常处理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第13讲异常处理介绍C++语言的异常处理。介绍异常的基本概念。介绍异常的捕获机制、使用try-catch语句捕获异常以及如何使用throw语句抛出异常。介绍异常的四种处理规则。异常的基本概念所谓异常,是指程序在运行过程中遇到的不正常情况。比如,除数为0、数组越界、存储空间耗尽、期望输入一个int型数据,结果却输入了一个字符串等。除数为零时的异常案例名称:除数为零时的异常程序名称:proj5_01.cpp#includevoidmain(){inta=0;intb=1;intc=b/a;}异常的实现C++语言中使用异常需要经历3个步骤:(1)定义异常(try语句
2、块)将可能产生错误的语句放在try块中;(2)定义异常处理(catch语句块)将异常处理的语句放在catch块中,以便异常被传递过来时处理。(3)抛出异常(throw语句块)检测是否产生异常,若是,则抛出异常。异常的抛出与捕获在可能会出现异常的地方,创建异常对象,并用throw语句将它抛出,其格式为:“throw<对象>;”。try块的作用就在异常的抛出和处理之间架起一座连接的桥梁。它由关键字try、花括号“{}”和一组能够抛出异常的语句序列组成。处理异常的catch语句紧跟在try块的后面,其格式为:try{//语句序列,含有throw语句}catch(<异常声明>){//处理语句
3、}使用try-catch语句案例名称:使用try-catch语句程序名称:proj5_02.cpp#includevoidmain(){try{inta=0;throw(a);}catch(intex){cout<<"捕获到a="<doubleDiv(double,double);voidmain(){try{cout<<"7.3/2.0="<4、v(7.3,0.0)<5、_04.cpp#includevoidmain(){try{inta=9;throwa;floatf=0.5F;throwf;}catch(floatk){cout<<"出现异常!float";}catch(intk){cout<<"出现异常!int";}cout<<"程序执行成功";}异常的处理规则(2)在catch行的括号中包含数据类型声明,它与函数定义中参数声明起的作用相同,捕获是利用数据类型匹配实现的。在数据类型之后放参数名是可选的。参数名使被捕获的对象在能够在catch体中使用。比如:l“throw10;”被catch(intk)处理程序6、捕获;l“throw"abc"”被catch(char*p)处理程序捕获;l“throwstring("abc")”被catch(stringa)处理程序捕获异常的处理规则(3)如果一个函数抛出一个异常,但是在异常处理中没有与之匹配的catch,则该程序通常调用系统abort()函数中止。案例名称:找不到与之匹配的catch块程序名称:proj5_05.cpp#includevoidmain(){try{char*pString="abcdef";throw(pString);}catch(intk){cout<<"出现异常!int";}cout<<"程序7、执行成功";}异常的处理规则(4)程序中捕获异常执行catch语句以后,就会自动catch语句后面的语句。本讲需要了解异常的基本概念,什么时候产生异常以及异常的处理方法。掌握使用throw语句抛出异常,熟练掌握使用try-catch结构捕获异常的方法和用法。掌握异常的四种处理规则小结 当前文档最多预览五页,下载文档查看全文 侵权申诉 举报 1 1 2 3 4 5 / 13 此文档下载收益归作者所有 下载文档 当前文档最多预览五页,下载文档查看全文 点击下载本文档
4、v(7.3,0.0)<5、_04.cpp#includevoidmain(){try{inta=9;throwa;floatf=0.5F;throwf;}catch(floatk){cout<<"出现异常!float";}catch(intk){cout<<"出现异常!int";}cout<<"程序执行成功";}异常的处理规则(2)在catch行的括号中包含数据类型声明,它与函数定义中参数声明起的作用相同,捕获是利用数据类型匹配实现的。在数据类型之后放参数名是可选的。参数名使被捕获的对象在能够在catch体中使用。比如:l“throw10;”被catch(intk)处理程序6、捕获;l“throw"abc"”被catch(char*p)处理程序捕获;l“throwstring("abc")”被catch(stringa)处理程序捕获异常的处理规则(3)如果一个函数抛出一个异常,但是在异常处理中没有与之匹配的catch,则该程序通常调用系统abort()函数中止。案例名称:找不到与之匹配的catch块程序名称:proj5_05.cpp#includevoidmain(){try{char*pString="abcdef";throw(pString);}catch(intk){cout<<"出现异常!int";}cout<<"程序7、执行成功";}异常的处理规则(4)程序中捕获异常执行catch语句以后,就会自动catch语句后面的语句。本讲需要了解异常的基本概念,什么时候产生异常以及异常的处理方法。掌握使用throw语句抛出异常,熟练掌握使用try-catch结构捕获异常的方法和用法。掌握异常的四种处理规则小结
5、_04.cpp#includevoidmain(){try{inta=9;throwa;floatf=0.5F;throwf;}catch(floatk){cout<<"出现异常!float";}catch(intk){cout<<"出现异常!int";}cout<<"程序执行成功";}异常的处理规则(2)在catch行的括号中包含数据类型声明,它与函数定义中参数声明起的作用相同,捕获是利用数据类型匹配实现的。在数据类型之后放参数名是可选的。参数名使被捕获的对象在能够在catch体中使用。比如:l“throw10;”被catch(intk)处理程序
6、捕获;l“throw"abc"”被catch(char*p)处理程序捕获;l“throwstring("abc")”被catch(stringa)处理程序捕获异常的处理规则(3)如果一个函数抛出一个异常,但是在异常处理中没有与之匹配的catch,则该程序通常调用系统abort()函数中止。案例名称:找不到与之匹配的catch块程序名称:proj5_05.cpp#includevoidmain(){try{char*pString="abcdef";throw(pString);}catch(intk){cout<<"出现异常!int";}cout<<"程序
7、执行成功";}异常的处理规则(4)程序中捕获异常执行catch语句以后,就会自动catch语句后面的语句。本讲需要了解异常的基本概念,什么时候产生异常以及异常的处理方法。掌握使用throw语句抛出异常,熟练掌握使用try-catch结构捕获异常的方法和用法。掌握异常的四种处理规则小结
此文档下载收益归作者所有