La función feraiseexcept () en C ++ intenta generar todas las excepciones de punto flotante especificadas por el argumento.
La función feraiseexcept () se define en el archivo de encabezado.
feraiseexcept () prototipo
int feraiseexcept (int excepciones);
Las excepciones de coma flotante que se generarán se enumeran en el argumento excepciones.
Además, debe habilitar FENV_ACCESS , lo que le permitirá a su programa acceder al entorno de coma flotante para probar las excepciones planteadas.
Parámetros feraiseexcept ()
- excepciones: lista de máscara de bits de banderas de excepción para generar.
Macro | Tipo | Descripción |
---|---|---|
FE_DIVBYZERO | Error de polo | División por cero |
FE_INEXACT | Inexacto | Resultados no exactos como (1.0 / 3.0) |
FE_INVALID | Error de dominio | Al menos uno de los argumentos utilizados es un valor para el que la función no está definida |
FE_OVERFLOW | Error de rango de desbordamiento | El resultado es demasiado grande en magnitud para ser representado por el tipo de retorno |
FE_UNDERFLOW | Error de rango de subdesbordamiento | El resultado es demasiado pequeño en magnitud para ser representado por el tipo de retorno |
FE_ALL_EXCEPT | Todas las excepciones | Todas las excepciones respaldadas por la implementación |
feraiseexcept () Valor de retorno
- La función feraiseexcept () devuelve un valor cero si se generan todas las excepciones especificadas por excepciones.
- De lo contrario, devuelve un valor distinto de cero.
Ejemplo: cómo funciona la función feraiseexcept ()
#include #include #pragma STDC FENV_ACCESS ON using namespace std; int main() ( int retVal; feclearexcept(FE_ALL_EXCEPT); retVal = feraiseexcept(FE_OVERFLOW | FE_INVALID); if (retVal == 0) cout << "Successfully raised FE_OVERFLOW and FE_INVALID" << endl; else cout << "Raising FE_OVERFLOW and FE_INVALID failed" << endl; return 0; )
Cuando ejecute el programa, la salida será:
Aumentó correctamente FE_OVERFLOW y FE_INVALID