Namespaces
Variants

feraiseexcept

From cppreference.net
< c ‎ | numeric ‎ | fenv
Défini dans l'en-tête <fenv.h>
int feraiseexcept ( int excepts ) ;
(depuis C99)

Tente de lever toutes les exceptions en virgule flottante listées dans excepts (un OU binaire des macros d'exception en virgule flottante ). Si l'une des exceptions est FE_OVERFLOW ou FE_UNDERFLOW , cette fonction peut également lever FE_INEXACT . L'ordre dans lequel les exceptions sont levées n'est pas spécifié, sauf que FE_OVERFLOW et FE_UNDERFLOW sont toujours levées avant FE_INEXACT .

Table des matières

Paramètres

excepts - masque de bits listant les indicateurs d'exception à lever

Valeur de retour

0 si toutes les exceptions listées ont été levées, valeur non nulle sinon.

Exemple

#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;
}

Sortie :

feraiseexcept() succeeds
current exceptions raised:  FE_INEXACT FE_OVERFLOW

Références

  • Norme C11 (ISO/CEI 9899:2011) :
  • 7.6.2.3 La fonction feraiseexcept (p: 210)
  • Norme C99 (ISO/CEI 9899:1999) :
  • 7.6.2.3 La fonction feraiseexcept (p: 191)

Voir aussi

efface les indicateurs d'état en virgule flottante spécifiés
(fonction)
détermine quels indicateurs d'état en virgule flottante spécifiés sont activés
(fonction)
Documentation C++ pour feraiseexcept