




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验三 计算三角形面积中的异常处理一、实验目的1. 了解c+异常处理机制二、实验环境windows+ vc+6.0o三、实验内容及要求1. 设计一个程序根据输入的三边求三角形面积。2. 要求设置异常处理机制,对不符合三角形条件的提示错误信息,不予计算;对输入非正 数的边提示错误,并璽新输入。四、实验步骤(1) 设计一个含三个参数的triangle函数求三角形的面积#includecmathdouble triangle (double, double, double) ; /triangle® 数声明double triangle (double a, double b, doubl
2、e c) /triangle函数定义double s二(a+b+c)/2;return sqrt (s*(sa)*(sb)*(s-c);(2) 抛出异常 wronginput,aif (a<0 |b<0 | c<0) throw wrongtnput ();/抛出 wronginput 异常if (a+b<=c |c+b<=a| a+c<=b) throw a; /抛出 a 异常(3)声明并捕捉异常wronginput,aclass wrong1nput;catch (wronginput)/捕捉 wrong input 异常cout«,z输入错误
3、! “;catch (double) /捕捉a异常cout«"a二b二"<b<<”, c二"c<<",不满足三角形三边条件z,«endl;五、程序分析(1)异常对象通常是一个class对象,通常用以下代码抛出throw wrong!nput();但是throw表达式也町以抛出任何类型的対象,例如(虽然很不常见)在下面的代码例子屮, 函数mathfuncoite jil个枚举类型的界常对象enum ehstate noerr, zeroop, negativeop, severeerror ;int mat
4、hfunc( int i)if(i=0)throw zeroop; /枚举类型的界常(2)抛出异常的语句或其调用函数要在try块小才能被捕获。try(throw wrong!nput ();抛出 wrong input 异常catch (wrong input) /捕捉 wrong input 界常cout«z,输入错误! ”; 一个 catch 了 句 由 三 部 分 构 成:1)关键字catch2)异常声明,在括号中的单个类型或单个对象声明(被称作异常声明,exception declaration3)复合语句屮的一组语句catch子句的弄常声明4以是一个类型声明或一个对彖声明o
5、 catch(wronginput);catch (double a);六、实验结果与总结实验结果:实验总结:(1) c+自身有着非常强的纠错能力,发展到如今,已经建立了比较完善的异常处理机制。c+的异常情况无非两种,一种是语法错误,即程序中出现了错误的语句,函数,结构和类, 致使编译程序无法进行。另一种是运行时发牛的错课,-般与算法有关。关于语法错误,不必多说,写代码时心细一点就町以解决。c+编译器的报错机制可以让我们轻松地解决这些错谋。 第二种是运行时的错谋,常见的有文件打开失败、数纟r下标溢出、系统内存不足等等。而 一旦出现这些问题,引发算法失效、程序运行时无故停止等故障也是常有的。这就
6、要求我们在设计软件算法全 面比如针对文件打开失败的情况,保护的方法有很多种,最简单的就是使用“return”命令, 告诉上层调用者函数执行失败;另外一种处理策略就是利用c+的界常机制,抛出界常。界常不能够保持在耒被处理的状态,界常对于一个程序非常重耍,它表示程序不能够继续 正常执行。(2) c+异常处理机制是一个用来有效地处理运行错误的非常强大且灵活的工具,它提供 了更多的弹性、安全性和稳固性,克服了传统方法所带来的问题 异常的抛出和处理主要使用了以下三个关键字:try throw catch抛出异常即检测是否产生异 常,在c+中,其采用throw语句来实现,如果检测到产生弄常,则抛出界常。该
7、语句的 格式为:throw表达式。附完整的原程序#include<iostream>#include<cmath>using namespace std;class wrongtnput;vo i ddouble triangle (double, double, double) ; /triangle 函数声明double a, b, c;while (1)cin»a>>b»c;trvif (a<0 |b<0 |c<0)throw wronginput () ;/抛出 wrong input 异常 else cout«triangle (a, b, c) <cndl;catch (wronginput) /捕捉wronginput 开常cout<c输入错误! ”;catch (double) /捕捉异常cout«"a="«a<<", b='«b«,z, c二"<<c«",不满足三角形三边条件*«endl; cout<<,end,«endl;double triangle (double a, double b, doub
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年同学聚会策划方案
- 2025年第一季渣打香港中小企领先营商指数报告
- 2025年电工收缩带项目可行性研究报告
- 2025年玄米茶项目可行性研究报告
- 2025年牛蹄筋串项目可行性研究报告
- 2025春新版三年级下册科学•必背知识点考点
- 荆楚理工学院《管理统计》2023-2024学年第二学期期末试卷
- 江西工程学院《声乐(2)》2023-2024学年第一学期期末试卷
- 珠海科技学院《体育与生存》2023-2024学年第一学期期末试卷
- 湖南工程学院《英语视听说四》2023-2024学年第二学期期末试卷
- 计算猪单位体重总产热量的计算公式
- 2023年4月自考00540外国文学史试题及答案含评分标准
- 中国志愿服务发展指数报告
- 畜牧业经营预测与决策 畜牧业经营预测(畜牧业经营管理)
- MBTI 英文介绍课件
- 认识平面图上的方向
- 液氮安全培训资料课件
- 陕西省公务员招聘面试真题和考官题本及答案102套
- 铁路工务巡道工岗位作业标准(岗位职责、岗位风险)
- 幼儿园红色故事绘本:《鸡毛信》 课件
- 监理毕业论文开题报告(文献综述+计划书),开题报告
评论
0/150
提交评论