De functie feraiseexcept () in C ++ probeert alle drijvende-komma-uitzonderingen te verhogen die door het argument worden gespecificeerd.
De functie feraiseexcept () is gedefinieerd in het headerbestand.
feraiseexcept () prototype
int feraiseexcept (int behalves);
De uitzonderingen met drijvende komma die moeten worden verhoogd, worden vermeld in de argument excepts.
U moet ook FENV_ACCESS inschakelen , wat uw programma toegang geeft tot de Floating point-omgeving om de opgeworpen uitzonderingen te testen.
feraiseexcept () Parameters
- behalve: Bitmask-lijst met uitzonderingsvlaggen om te verhogen.
Macro | Type | Omschrijving |
---|---|---|
FE_DIVBYZERO | Poolfout | Deling door nul |
FE_INEXACT | Inexact | Niet exacte resultaten zoals (1.0 / 3.0) |
FE_INVALID | Domeinfout | Ten minste één van de gebruikte argumenten is een waarde waarvoor de functie niet is gedefinieerd |
FE_OVERFLOW | Fout overloopbereik | Het resultaat is te groot om te worden weergegeven door het retourtype |
FE_UNDERFLOW | Fout onderstroombereik | Het resultaat is te klein om te worden weergegeven door het retourtype |
FE_ALL_EXCEPT | Alle uitzonderingen | Alle uitzonderingen ondersteund door de implementatie |
feraiseexcept () Retourwaarde
- De functie feraiseexcept () retourneert een nulwaarde als alle uitzonderingen die zijn gespecificeerd door uitzonderingen worden verhoogd.
- Anders retourneert het een waarde die niet nul is.
Voorbeeld: hoe de functie feraiseexcept () werkt
#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; )
Wanneer u het programma uitvoert, is de uitvoer:
Met succes FE_OVERFLOW en FE_INVALID verhoogd