Funkcija feraiseexcept () C ++ bando iškelti visas argumento nurodytas slankiojo kablelio išimtis.
Funkcija feraiseexcept () yra apibrėžta antraštės faile.
feraiseexcept () prototipas
int feraiseexcept (int excepts);
Išskirtinos slankiojo kablelio išimtys yra išvardytos argumento išimtyse.
Be to, turėtumėte įgalinti FENV_ACCESS , kuris suteiks jūsų programai prieigą prie slankiojo kablelio aplinkos ir išbandys iškeltas išimtis.
feraiseexcept () parametrai
- išskyrus: „Bitmask“ išimties vėliavų sąrašas, kurį reikia iškelti.
Makrokomanda | Tipas | apibūdinimas |
---|---|---|
FE_DIVBYZERO | Pole klaida | Dalyba iš nulio |
FE_INEXACT | Tikslus | Netikslūs rezultatai, pvz., (1.0 / 3.0) |
FE_INVALID | Domeno klaida | Bent vienas naudojamas argumentas yra reikšmė, kuriai funkcija nėra apibrėžta |
FE_OVERFLOW | Perpildymo diapazono klaida | Rezultatas yra per didelis, kad būtų galima parodyti grąžinimo tipą |
FE_UNDERFLOW | Nepakankamo diapazono klaida | Rezultatas yra per mažas, kad būtų galima pateikti grąžinimo tipą |
FE_ALL_EXCEPT | Visos išimtys | Visos išimtys, kurias palaiko įgyvendinimas |
feraiseexcept () Grąžinimo vertė
- Funkcija „feraiseexcept ()“ grąžina nulinę vertę, jei padidinamos visos išimtimis nurodytos išimtys.
- Kitu atveju ji grąžina nulinę vertę.
Pavyzdys: Kaip veikia funkcija feraiseexcept ()
#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; )
Kai paleisite programą, išvestis bus:
Sėkmingai pakelta FE_OVERFLOW ir FE_INVALID