C ++ feraiseexcept () - C ++ - vakiokirjasto

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.
Bitmask hyväksyi makrot
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

Mielenkiintoisia artikkeleita...