void maino I double x, y, z cut<"输入两个实数x和y:"; Thile (cin >>x >> y) z= divide(X, y) cout<<"x除以y等于"z<"n"; cout<"输入下一组数<q表示结束》:"; cout<< Bye! n 2005-4-27 北京邮电大学电信工程学院计算机技术中心
2005-4-27 北京邮电大学电信工程学院计算机技术中心 -11- void main() {double x,y,z; cout<<"输入两个实数 x 和 y :"; while (cin >> x >> y) { z = divide(x,y); cout << "x 除以 y 等于 " << z << "\n"; cout << "输入下一组数 <q 表示结束>: "; } cout << "Bye!\n"; }
如果出现分母为0的情况,运行将出现以下结果: "教学++B00K习题10 aaa Debug aaa.exe 和y:1.23.4 9.352941 组数<q表示结束》:2.38 数不可以等于! Microsoft Visual C++ Debug Library X Debug Error Program:E教学C++100k习题10 aaal Debug'aaa exe abnormal program termination (Press Retry to debug the application 终正(重试 忽略( 2005-4-27 北京邮电大学电信工程学院计算机技术中心
2005-4-27 北京邮电大学电信工程学院计算机技术中心 -12- 如果出现分母为0 的情况,运行将出现以下结果:
1312异常处理方法及举例 ◆这个程序中,对于除数为0的处理有这样 的特点 异常的检测和处理都是在一个程序模块 ( divide函数)中进行的; ■由于函数的返回值是 double型的数据,因 此,即使检测到除数为0的情况,也不能通 过返回值来反映这个异常。只能调用函数 abort终止程序的运行 2005-4-27 北京邮电大学电信工程学院计算机技术中心
2005-4-27 北京邮电大学电信工程学院计算机技术中心 -13- 13.1.2 异常处理方法及举例 这个程序中,对于除数为0的处理有这样 的特点: 异常的检测和处理都是在一个程序模块 (divide函数)中进行的; 由于函数的返回值是double型的数据,因 此,即使检测到除数为0的情况,也不能通 过返回值来反映这个异常。只能调用函数 abort终止程序的运行
13.2C++异常处理机制
13.2 C++异常处理机制
132C++异常处理机制 ◆C++处理异常有两个基本的做法 ■异常的检测和处理是在不同的代码段中进行的 般的说法是在“try”部分检测异常,“ catch”部分处 理异常 由于异常的检测和处理不是在同一个代码段中进行 的,在检测异常和处理异常的代码段之间需要有 种传递异常信息的机制,在C++中是通过“对象”来 传递异常的。这种对象可以是一种简单的数据(如 整数),也可以是系统定义或用户自定义的类的对 象 2005-4-27 北京邮电大学电信工程学院计算机技术中心 15-
2005-4-27 北京邮电大学电信工程学院计算机技术中心 -15- 13.2 C++异常处理机制 C++处理异常有两个基本的做法: 异常的检测和处理是在不同的代码段中进行的。一 般的说法是在“try”部分检测异常,“catch”部分处 理异常。 由于异常的检测和处理不是在同一个代码段中进行 的,在检测异常和处理异常的代码段之间需要有一 种传递异常信息的机制,在C++中是通过“对象”来 传递异常的。这种对象可以是一种简单的数据(如 整数),也可以是系统定义或用户自定义的类的对 象