Funktio feraiseexcept () C ++: ssa yrittää nostaa kaikki argumentin määrittelemät liukulukuiset poikkeukset.
Feraiseexcept () -funktio määritetään otsikkotiedostossa.
feraiseexcept () prototyyppi
int feraiseexcept (int poissulkee);
Esitettävät liukulukuiset poikkeukset on lueteltu argumenttipoikkeuksissa.
Sinun tulisi myös ottaa käyttöön FENV_ACCESS , mikä antaa ohjelmallesi pääsyn liukulukuympäristöön ja testata esiin tuotuja poikkeuksia.
feraiseexcept () -parametrit
- poikkeukset: Bitmask-luettelo nostettavista poikkeuslipuista.
Makro | Tyyppi | Kuvaus |
---|---|---|
FE_DIVBYZERO | Napavirhe | Nollalla jakaminen |
FE_INEXACT | Epätarkka | Ei tarkat tulokset, kuten (1.0 / 3.0) |
FE_INVALID | Verkkotunnuksen virhe | Ainakin yksi käytetty argumentti on arvo, jolle toimintoa ei ole määritelty |
FE_OVERFLOW | Ylivuotoalueen virhe | Tulos on liian suuri, jotta sitä voidaan esittää paluutyypillä |
FE_UNDERFLOW | Alivirtausalueen virhe | Tulos on liian pieni, jotta sitä voidaan esittää paluutyypillä |
FE_ALL_EXCEPT | Kaikki poikkeukset | Kaikki toteutuksen tukemat poikkeukset |
feraiseexcept () Palautusarvo
- Funktio feraiseexcept () palauttaa nollan arvon, jos kaikki poikkeuksilla määritetyt poikkeukset nostetaan.
- Muuten se palauttaa arvon, joka ei ole nolla.
Esimerkki: Kuinka feraiseexcept () -toiminto toimii
#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; )
Kun suoritat ohjelmaa, tulos on:
FE_OVERFLOW ja FE_INVALID nostettiin onnistuneesti