extern int errno; class c_exception {...}; int complex_error(c_exception&); |
外部变量 errno 是来自 C 库的全局错误状态。errno 可以为标准头文件 errno.h 中所列值(请参见 perror(3) 手册页)。没有任何函数会将 errno 设置为零,但有许多函数会将它设置为其他值。
要分辨特定运算是否失败:
在运算前将 errno 设置为零。
测试运算。
函数 complex_error 采用对类型 c_exception 的引用并由下列复数运算库函数调用:
exp
log
log10
sinh
cosh
缺省版本的 complex_error 返回零。这个零值的返回意味着发生了缺省的错误处理。可以提供自己的替换函数 complex_error,以执行其他错误处理。cplxerr(3CC4) 手册页中介绍了错误处理。
cplxtrig(3CC4) 和 cplxexp(3CC4) 手册页中介绍了缺省的错误处理,下表中也进行了简要介绍。
复数运算库函数 |
缺省错误处理汇总 |
---|---|
exp | |
log、log10 | |
sinh、cosh |
如果参数的虚部产生溢出,则返回一个零复数。如果实部产生溢出,则返回一个极大的复数。无论是以上哪种情况,都将 errno 设置为 ERANGE。 |