C ++ feraiseexcept () - štandardná knižnica C ++

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ť.
Bitmask akceptoval makra
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

Zaujímavé články...