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.
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