Feraiseexcept () -funktionen i C ++ forsøger at hæve alle de undtagelser med flydende punkt, der er angivet af argumentet.
Funktionen feraiseexcept () er defineret i header-fil.
feraiseexcept () prototype
int feraiseexcept (int excepts);
Undtagelserne for flydende punkt, der skal hæves, er anført i argumentets undtagelser.
Du skal også aktivere FENV_ACCESS , hvilket giver dit program adgang til flydepunktmiljøet for at teste de hævede undtagelser.
feraiseexcept () Parametre
- excepts: Bitmask-liste over undtagelsesflag, der skal hæves.
Makro | Type | Beskrivelse |
---|---|---|
FE_DIVBYZERO | Stangfejl | Opdeling med nul |
FE_INEXACT | Inexakt | Ikke nøjagtige resultater såsom (1.0 / 3.0) |
FE_INVALID | Domæne fejl | Mindst et anvendt argument er en værdi, som funktionen ikke er defineret for |
FE_OVERFLOW | Fejl ved overløbsområde | Resultatet er for stort i størrelse til at blive repræsenteret af returtypen |
FE_UNDERFLOW | Fejl i underflowområdet | Resultatet er for lille i størrelse til at blive repræsenteret af returtypen |
FE_ALL_EXCEPT | Alle undtagelser | Alle undtagelser understøttet af implementeringen |
feraiseexcept () Returværdi
- Funktionen feraiseexcept () returnerer nul værdi, hvis alle undtagelser, der er specificeret af excepts, hæves.
- Ellers returnerer den en værdi, der ikke er nul.
Eksempel: Sådan fungerer feraiseexcept () -funktionen
#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; )
Når du kører programmet, vil output være:
FE_OVERFLOW og FE_INVALID blev hævet med succes