Feraiseexcept () -funksjonen i C ++ prøver å heve alle unntakene for flytende punkt som er angitt av argumentet.
Feraiseexcept () -funksjonen er definert i topptekstfilen.
feraiseexcept () prototype
int feraiseexcept (int excepts);
Flytende unntak som skal heves er oppført i argumentet unntak.
Du bør også aktivere FENV_ACCESS , som vil gi programmet ditt tilgang til flytepunktmiljøet for å teste unntakene som er hevet.
feraiseexcept () Parametere
- unntas: Bitmask-liste over unntaksflagg å heve.
Makro | Type | Beskrivelse |
---|---|---|
FE_DIVBYZERO | Stangfeil | Divisjon med null |
FE_INEXACT | Inexakt | Ikke eksakte resultater som (1.0 / 3.0) |
FE_INVALID | Domenefeil | Minst ett argument som brukes er en verdi som funksjonen ikke er definert for |
FE_OVERFLOW | Feil på overløpsområde | Resultatet er for stort i størrelse til å bli representert av returtypen |
FE_UNDERFLOW | Feil understrømningsområde | Resultatet er for lite i størrelse til å bli representert av returtypen |
FE_ALL_EXCEPT | Alle unntak | Alle unntak støttet av implementeringen |
feraiseexcept () Returverdi
- Funksjonen feraiseexcept () returnerer nullverdi hvis alle unntakene spesifisert av unntakene er hevet.
- Ellers returnerer den en verdi som ikke er null.
Eksempel: Hvordan funksjonen feraiseexcept () fungerer
#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 kjører programmet, vil utdataene være:
Hevet FE_OVERFLOW og FE_INVALID