Namespaces
Variants

feraiseexcept

From cppreference.net
< c ‎ | numeric ‎ | fenv
Definido en el encabezado <fenv.h>
int feraiseexcept ( int excepts ) ;
(desde C99)

Intenta activar todas las excepciones de punto flotante listadas en excepts (un OR bit a bit de las macros de excepción de punto flotante ). Si una de las excepciones es FE_OVERFLOW o FE_UNDERFLOW , esta función puede adicionalmente activar FE_INEXACT . El orden en que se activan las excepciones no está especificado, excepto que FE_OVERFLOW y FE_UNDERFLOW siempre se activan antes que FE_INEXACT .

Contenidos

Parámetros

excepts - máscara de bits que enumera las banderas de excepción a activar

Valor de retorno

0 si todas las excepciones listadas fueron lanzadas, valor distinto de cero en caso contrario.

Ejemplo

#include <stdio.h>
#include <fenv.h>
#pragma STDC FENV_ACCESS ON
void show_fe_exceptions(void)
{
    printf("current exceptions raised: ");
    if(fetestexcept(FE_DIVBYZERO))     printf(" FE_DIVBYZERO");
    if(fetestexcept(FE_INEXACT))       printf(" FE_INEXACT");
    if(fetestexcept(FE_INVALID))       printf(" FE_INVALID");
    if(fetestexcept(FE_OVERFLOW))      printf(" FE_OVERFLOW");
    if(fetestexcept(FE_UNDERFLOW))     printf(" FE_UNDERFLOW");
    if(fetestexcept(FE_ALL_EXCEPT)==0) printf(" none");
    feclearexcept(FE_ALL_EXCEPT);
    printf("\n");
}
double some_computation(void)
{
    /* Computation reaches a state that causes overflow. */
    int r = feraiseexcept(FE_OVERFLOW | FE_INEXACT);
    printf("feraiseexcept() %s\n", (r?"fails":"succeeds"));
    return 0.0;
}
int main(void)
{
    some_computation();
    show_fe_exceptions();
    return 0;
}

Salida:

feraiseexcept() succeeds
current exceptions raised:  FE_INEXACT FE_OVERFLOW

Referencias

  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.6.2.3 La función feraiseexcept (p: 210)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.6.2.3 La función feraiseexcept (p: 191)

Véase también

borra las banderas de estado de punto flotante especificadas
(función)
determina cuáles de las banderas de estado de punto flotante especificadas están activadas
(función)
Documentación de C++ para feraiseexcept