Sun Studio 12 Update 1:C++ 用户指南

15.4 错误处理

复数库具有以下用于错误处理的定义:


extern int errno;
class c_exception {...};
int complex_error(c_exception&);

外部变量 errno 是来自 C 库的全局错误状态。errno 可以为标准头文件 errno.h 中所列值(请参见 perror(3) 手册页)。没有任何函数会将 errno 设置为零,但有许多函数会将它设置为其他值。

要分辨特定运算是否失败:

  1. 在运算前将 errno 设置为零。

  2. 测试运算。

函数 complex_error 采用对类型 c_exception 的引用并由下列复数运算库函数调用:

缺省版本的 complex_error 返回零。这个零值的返回意味着发生了缺省的错误处理。可以提供自己的替换函数 complex_error,以执行其他错误处理。cplxerr(3CC4) 手册页中介绍了错误处理。

cplxtrig(3CC4) 和 cplxexp(3CC4) 手册页中介绍了缺省的错误处理,下表中也进行了简要介绍。

复数运算库函数  

缺省错误处理汇总  

exp

如果产生溢出,将 errno 设置为 ERANGE,并返回一个极大的复数。

log、log10

如果参数为零,将 errno 设置为 EDOM,并返回一个极大的复数。

sinh、cosh

如果参数的虚部产生溢出,则返回一个零复数。如果实部产生溢出,则返回一个极大的复数。无论是以上哪种情况,都将 errno 设置为 ERANGE