Funcția feraiseexcept () din C ++ încearcă să ridice toate excepțiile în virgulă mobilă specificate de argument.
Funcția feraiseexcept () este definită în fișierul antet.
feraiseexcept () prototip
int feraiseexcept (int exceptie);
Excepțiile în virgulă mobilă care trebuie ridicate sunt enumerate în argumentul excepții.
De asemenea, ar trebui să activați FENV_ACCESS , care va permite programului dvs. să acceseze mediul în virgulă mobilă pentru a testa excepțiile ridicate.
feraiseexcept () Parametri
- excepts: listarea Bitmask a steagurilor de excepție de ridicat.
Macro | Tip | Descriere |
---|---|---|
FE_DIVBYZERO | Eroare polară | Impartirea cu zero |
FE_INEXACT | Inexact | Nu sunt rezultate exacte, cum ar fi (1.0 / 3.0) |
FE_INVALID | Eroare de domeniu | Cel puțin un argument utilizat este o valoare pentru care funcția nu este definită |
FE_OVERFLOW | Eroare de depășire | Rezultatul este prea mare ca mărime pentru a fi reprezentat de tipul returnat |
FE_UNDERFLOW | Eroare de subdezvoltare | Rezultatul este prea mic ca mărime pentru a fi reprezentat de tipul returnat |
FE_ALL_EXCEPT | Toate excepțiile | Toate excepțiile acceptate de implementare |
feraiseexcept () Valoare returnată
- Funcția feraiseexcept () returnează valoarea zero dacă sunt ridicate toate excepțiile specificate de excepții.
- În caz contrar, returnează o valoare diferită de zero.
Exemplu: Cum funcționează funcția 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; )
Când rulați programul, ieșirea va fi:
FE_OVERFLOW și FE_INVALID au crescut cu succes