C ++ feraiseexcept () - Bibliothèque standard C ++

La fonction feraiseexcept () en C ++ tente de lever toutes les exceptions en virgule flottante spécifiées par l'argument.

La fonction feraiseexcept () est définie dans le fichier d'en-tête.

prototype feraiseexcept ()

 int feraiseexcept (int sauf);

Les exceptions en virgule flottante à déclencher sont répertoriées dans l'argument excepts.

Vous devez également activer FENV_ACCESS , ce qui donnera à votre programme l'accès à l'environnement en virgule flottante pour tester les exceptions déclenchées.

Paramètres de feraiseexcept ()

  • excepts: liste de masque de bits des indicateurs d'exception à lever.
Macros acceptées par Bitmask
Macro Type La description
FE_DIVBYZERO Erreur de pôle Division par zéro
FE_INEXACT Inexact Résultats non exacts tels que (1.0 / 3.0)
FE_INVALID Erreur de domaine Au moins un argument utilisé est une valeur pour laquelle la fonction n'est pas définie
FE_OVERFLOW Erreur de plage de débordement Le résultat est trop grand pour être représenté par le type de retour
FE_UNDERFLOW Erreur de plage de dépassement inférieur Le résultat est trop petit pour être représenté par le type de retour
FE_ALL_EXCEPT Toutes les exceptions Toutes les exceptions prises en charge par la mise en œuvre

feraiseexcept () Valeur de retour

  • La fonction feraiseexcept () renvoie une valeur nulle si toutes les exceptions spécifiées par excepts sont déclenchées.
  • Sinon, il renvoie une valeur différente de zéro.

Exemple: Fonctionnement de la fonction 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; )

Lorsque vous exécutez le programme, la sortie sera:

 FE_OVERFLOW et FE_INVALID ont bien été soulevés

Articles intéressants...