NO13异常处理电子课件 C++程序设计案例教程中职 高二 工信版

2023-01-04
| 11页
| 81人阅读
| 0人下载
普通

内容正文:

异常处理 异常是指程序在运行过程中,由于使用环境的变化和用户误操作而产生的错误。异常处理是指在程序设计过程中,针对可预测的异常编写相应的处理代码,防止异常发生后造成严重的后果。 目录 第13章 C++程序设计案例教程 13.1 异常处理 Add your text in here Click to add Text 求解一元二次方程实根时的异常处理 案例引入 编程求解一元二次方程实根,要求进行异常处理,判断Δ(b2-4ac)是否大于0,成立则计算实根,否则重新输入。 目录 第13章 C++程序设计案例教程 12.1 函数模板 源代码展示 #include "stdafx.h" #include <iostream.h> #include <math.h> double delta(double a,double b,double c) //定义函数,计算Δ { double d=b*b-4*a*c; if(d<0) throw d; //抛出异常 return d; } int main(int argc, char* argv[]) { double a,b,c,d; cout<<"请输入a,b,c:"; cin>>a>>b>>c; while(1) //循环,直到输入正确、能计算实根后跳出 { try //检查 { d=delta(a,b,c); //调用函数delta() cout<<"x1="<<(-b+sqrt(d))/(2*a)<<endl; cout<<"x2="<<(-b-sqrt(d))/(2*a)<<endl; break; //跳出循环 } catch(double) //捕获throw抛出的异常 { cout<<"Δ小于0,请重新输入a,b,c:"; cin>>a>>b>>c; } } return 0; } 目录 第13章 C++程序设计案例教程 12.1 函数模板 运行结果 程序分析 上述程序首先定义函数delta()计算Δ,如果Δ小于0,使用throw语句抛出异常(程序中将Δ抛出),然后将可能出现异常的语句(如调用函数delta()的语句)放在try后面的花括号中,并在catch语句块中包含对该异常的处理。程序运行后,如果try语句块内没有发生异常,则catch子句不起作用;如果发生异常,则对throw抛出的异常进行处理,catch子句的参数数据类型应与throw语句后的表达式数据类型相同。 目录 第13章 C++程序设计案例教程 知识讲解 C++的异常处理机制由三部分组成:检查(try)、抛出(throw)和捕获(catch)。将需要检查的语句放在try语句块中,throw用来当发生异常时发出一个异常消息,catch语句块用于捕获throw抛出的异常信息,如果捕获到异常信息,就对其进行处理。 throw语句的语法格式为: throw 表达式; try-catch的结构为: try { //需要检查的语句 } catch(异常信息类型) { //进行异常处理的语句 } 目录 第13章 C++程序设计案例教程 知识讲解 catch子句的参数一般只写异常信息的类型。例如: catch(double) catch语句块只检查所捕获异常信息的类型,而不检查其值。 一个try-catch结构中只允许有一个try语句块,但可以有多个catch语句块,用来与不同的异常信息匹配。一旦某个异常被抛出,会按照catch语句块的顺序依次寻找匹配的语句。如果找到,就进入该catch语句块进行处理,而其他的catch语句块就不会进入了。 目录 第13章 C++程序设计案例教程 13.2 异常处理中的析构 Add your text in here Click to add Text 异常处理中调用析构函数 案例引入 定义一个类Point,并定义构造函数和析构函数,以及用于输出坐标x和y的值的函数show()。在函数show()中,如果x和y值都为0,则抛出异常,否则输出坐标。为了清晰地展现程序流程,通过cout语句输出相关信息,根据输出结果分析在异常处理中是如何调用析构函数的。 目录 第13章 C++程序设计案例教程 13.2 异常处理中的析构 源代码展示 #include "stdafx.h" #

资源预览图

NO13异常处理电子课件  C++程序设计案例教程中职  高二 工信版
1
NO13异常处理电子课件  C++程序设计案例教程中职  高二 工信版
2
NO13异常处理电子课件  C++程序设计案例教程中职  高二 工信版
3
NO13异常处理电子课件  C++程序设计案例教程中职  高二 工信版
4
NO13异常处理电子课件  C++程序设计案例教程中职  高二 工信版
5
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。