Funkcia feraiseexcept () v C ++ sa pokúša vyvolať všetky výnimky s pohyblivou rádovou čiarkou určené argumentom.
Funkcia feraiseexcept () je definovaná v hlavičkovom súbore.
prototyp feraiseexcept ()
int feraiseexcept (okrem);
Výnimky s pohyblivou rádovou čiarkou, ktoré sa majú vyvolať, sú uvedené vo výnimkách argumentu.
Mali by ste tiež povoliť FENV_ACCESS , ktorý umožní vášmu programu prístup do prostredia s pohyblivou rádovou čiarkou na otestovanie vyvolaných výnimiek.
parametre feraiseexcept ()
- výnimky: Zoznam bitových masiek, ktoré sa majú zvýšiť.
Makro | Typ | Popis |
---|---|---|
FE_DIVBYZERO | Chyba pólu | Delenie nulou |
FE_INEXACT | Nepresné | Nie presné výsledky, ako napríklad (1,0 / 3,0) |
FE_INVALID | Chyba domény | Aspoň jeden použitý argument je hodnota, pre ktorú nie je funkcia definovaná |
FE_OVERFLOW | Chyba rozsahu pretečenia | Výsledok je príliš veľký na to, aby bol reprezentovaný návratovým typom |
FE_UNDERFLOW | Chyba rozsahu podtečenia | Výsledok je príliš malý na to, aby bol reprezentovaný návratovým typom |
FE_ALL_EXCEPT | Všetky výnimky | Všetky výnimky podporované implementáciou |
feraiseexcept () Vrátená hodnota
- Funkcia feraiseexcept () vráti nulovú hodnotu, ak sú vyvolané všetky výnimky určené výnimkami.
- V opačnom prípade vráti nenulovú hodnotu.
Príklad: Ako funguje funkcia 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; )
Po spustení programu bude výstup:
Úspešne zvýšené FE_OVERFLOW a FE_INVALID