c++ primer plus 第15章友,异常和其他:15.3 异常
c++ primer plus 第15章友,异常和其他:15.3 异常
前言
例如:
15.3 异常
15.3 异常
程序有时会遇到运行阶段错误,导致程序无法正常地运行下去。例如,程序可能试图打开一个不可用的文件,请求过多的内存,或者遭遇不能容忍的值。通常,程序员都会试图预防这种意外情况。C++异常为处理这种情况提供了一种功能强大而灵活的工具。异常是相对较新的C++功能,有些老式编译器可能没有实现。另外,有些编译器默认关闭这种特性,您可能需要使用编译器选项来启用它。讨论异常之前,先来看看程序员可使用的一些基本方法。作为试验,以一个计算两个数的调和平均数的函数为例。两个数的调和平均数的定义是:这两个数字倒数的平均值的倒数,因此表达式为:
2 .0 *x*y/(x + y)
如果y是x的负值,则上述公式将导致被零除—种不允许的运算。对于被零除的情况,很多新式编译器通过生成一个表示无穷大的特殊浮点值来处理,cout将这种值显示为Inf、inf、INF 或类似的东西:而其他的编译器可能生成在发生被零除时崩溃的程序。最好编写在所有系统上都以相同的受控方式运行的代码。