C ++ feraiseexcept () - C ++ Standardbibliotek

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.
Bitmask accepterede makroer
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

Interessante artikler...