C ++ feraiseexcept () - standardní knihovna C ++

Funkce feraiseexcept () v C ++ se pokusí vyvolat všechny výjimky s plovoucí desetinnou čárkou určené argumentem.

Funkce feraiseexcept () je definována v hlavičkovém souboru.

prototyp feraiseexcept ()

 int feraiseexcept (s výjimkou);

Výjimky s plovoucí desetinnou čárkou, které mají být vyvolány, jsou uvedeny ve vyjímce argumentu.

Také byste měli povolit FENV_ACCESS , který vašemu programu umožní přístup do prostředí s plovoucí desetinnou čárkou k otestování vyvolaných výjimek.

feraiseexcept () Parametry

  • výjimky: Bitmask seznam příznaků výjimek, které se mají zvýšit.
Bitová maska ​​akceptovala makra
Makro Typ Popis
FE_DIVBYZERO Chyba pólu Dělení nulou
FE_INEXACT Nepřesný Ne přesné výsledky, jako například (1,0 / 3,0)
FE_INVALID Chyba domény Alespoň jeden použitý argument je hodnota, pro kterou není funkce definována
FE_OVERFLOW Chyba rozsahu přetečení Výsledek je příliš velký na to, aby byl reprezentován návratovým typem
FE_UNDERFLOW Chyba rozsahu podtečení Výsledek je příliš malý na to, aby byl reprezentován návratovým typem
FE_ALL_EXCEPT Všechny výjimky Všechny výjimky podporované implementací

feraiseexcept () Vrátit hodnotu

  • Funkce feraiseexcept () vrací nulovou hodnotu, pokud jsou vyvolány všechny výjimky určené výjimkami.
  • V opačném případě vrátí nenulovou hodnotu.

Příklad: Jak funguje funkce 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; )

Když spustíte program, výstup bude:

 Úspěšně zvýšeno FE_OVERFLOW a FE_INVALID

Zajímavé články...