文档介绍:C++大学基础教程
第13章异常处理
北京邮电大学电信工程学院
计算机技术中心
2005-4-27 1
程序设计的要求之一就是程序的健
壮性。希望程序在运行时能够不出
或者少出问题。但是,在程序的实
际运行时,总会有一些因素会导致
程序不能正常运行。异常处理
(Exception Handling)就是要提
出或者是研究一种机制,能够较好
的处理程序不能正常运行的问题。
第十三章异常处理
异常和异常处理
C++异常处理机制
用类的对象传递异常
异常处理中的退栈和对象析构
异常和异常处理
异常及其特点
异常(Exceptions)是程序在运行时可能出现
的会导致程序运行终止的错误。
编译系统检查出来的语法错误,导致程序运行
结果不正确的逻辑错误,都不属于异常的范
围。
异常是一个可以正确运行的程序在运行中可能
发生的错误。
2005-4-27 北京邮电大学电信工程学院计算机技术中心-5-
异常及其特点
常见的异常,如:
系统资源不足。如内存不足,不可以动态申
请内存空间;磁盘空间不足,不能打开新的
输出文件,等。
用户操作错误导致运算关系不正确。如出现
分母为0,数学运算溢出,数组越界,参数
类型不能转换,等。
2005-4-27 北京邮电大学电信工程学院计算机技术中心-6-
异常及其特点
异常有以下的一些特点:
偶然性。程序运行中,异常并不总是会发生
的。
可预见性。异常的存在和出现是可以预见
的。
严重性。一旦异常发生,程序可能终止,或
者运行的结果不可预知。
2005-4-27 北京邮电大学电信工程学院计算机技术中心-7-
异常处理方法及举例
对于程序中的异常,通常有三种处理的
方法:
不作处理。很多程序实际上就是不处理异常
的。
发布相应的错误信息,然后,终止程序的运
行。在C语言的程序中,往往就是这样处理
的。
适当的处理异常,一般应该使程序可以继续
运行。
2005-4-27 北京邮电大学电信工程学院计算机技术中心-8-
异常处理方法及举例
一般来说,异常处理(Exception Handling)
就是在程序运行时对异常进行检测和控制。
而在C++中,异常处理(EH)就是用C++提供的
try-throw-catch的模式进行异常处理的机
制。
2005-4-27 北京邮电大学电信工程学院计算机技术中心-9-
程序将连续地输入两个实数,通过调用函数,返回这
两个数相除的商。并且要注意除数不能为0。
// 用一般的方法处理除法溢出
#include <>
#include <>
double divide(double a, double b)
{
if (b == 0) //检测分母是不是
为0
{
cout << "除数不可以等于0 !"<<endl;
abort(); //调用abort函数终止运行
}
return a/b;
}
2005-4-27 北京邮电大学电信工程学院计算机技术中心-10-