feraiseexcept

引发指定的浮点异常。

语法

int feraiseexcept(
   int excepts
);

参数

excepts
要引发的浮点异常。

返回值

如果指定的所有异常都成功引发,则返回 0。

备注

feraiseexcept 函数尝试引发由 excepts 指定的浮点异常。 feraiseexcept 函数支持 <fenv.h> 中定义的这些异常宏:

异常宏 说明
FE_DIVBYZERO 在早期的浮点运算中出现了奇点或极点错误;创建了无限值。
FE_INEXACT 此函数被强制舍入早期浮点运算的存储结果。
FE_INVALID 早期浮点运算中发生域错误。
FE_OVERFLOW 范围出错;早期浮点运算结果过大而无法表示。
FE_UNDERFLOW 早期的浮点运算结果因为过小而无法以完整的精度表示;创建了非常规值。
FE_ALL_EXCEPT 所有受支持的浮点异常的按位 OR。

excepts 参数可能为零、一个异常宏值,或为两个或多个受支持的异常宏的按位 OR。 如果指定的异常宏之一是 FE_OVERFLOWFE_UNDERFLOW,则可能会引发 FE_INEXACT 异常作为副作用。

若要使用此函数,必须在调用前先使用 #pragma fenv_access(on) 指令关闭可能会阻止访问的浮点优化。 有关详细信息,请参阅 fenv_access

Microsoft 特定:按 FE_INVALIDFE_DIVBYZEROFE_OVERFLOWFE_UNDERFLOWFE_INEXACT 的顺序引发 excepts 中指定的异常。 但是,即使未在 excepts 中指定,当引发 FE_OVERFLOWFE_UNDERFLOW 时,也可能引发 FE_INEXACT

要求

函数 C 标头 C++ 标头
feraiseexcept <fenv.h> <cfenv>

有关兼容性的详细信息,请参阅 兼容性

另请参阅

按字母顺序显示的函数参考
fesetexceptflag
feholdexcept
fetestexcept
feupdateenv