C ++ feraiseexcept () - biblioteka standardowa C ++

Funkcja feraiseexcept () w C ++ próbuje zgłosić wszystkie wyjątki zmiennoprzecinkowe określone przez argument.

Funkcja feraiseexcept () jest zdefiniowana w pliku nagłówkowym.

feraiseexcept () prototyp

 int feraiseexcept (int z wyjątkiem);

Wyjątki zmiennoprzecinkowe, które mają zostać zgłoszone, są wymienione w argumentach excepts.

Powinieneś także włączyć FENV_ACCESS , co da programowi dostęp do środowiska zmiennoprzecinkowego w celu przetestowania zgłoszonych wyjątków.

feraiseexcept () Parametry

  • excepts: Lista bitmaskowa flag wyjątków do podniesienia.
Maska bitowa akceptuje makra
Makro Rodzaj Opis
FE_DIVBYZERO Błąd Polaka Dzielenie przez zero
FE_INEXACT Niedokładny Niedokładne wyniki, takie jak (1,0 / 3,0)
FE_INVALID Błąd domeny Przynajmniej jeden użyty argument to wartość, dla której funkcja nie jest zdefiniowana
FE_OVERFLOW Błąd zakresu przepełnienia Wynik jest zbyt duży, aby mógł być reprezentowany przez typ zwracany
FE_UNDERFLOW Błąd zakresu niedomiaru Wynik jest zbyt mały, aby mógł być reprezentowany przez typ zwracany
FE_ALL_EXCEPT Wszystkie wyjątki Wszystkie wyjątki obsługiwane przez implementację

feraiseexcept () Wartość zwracana

  • Funkcja feraiseexcept () zwraca wartość zerową, jeśli zostaną zgłoszone wszystkie wyjątki określone przez wyjątki.
  • W przeciwnym razie zwraca wartość różną od zera.

Przykład: Jak działa funkcja 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 uruchomieniu programu wynik będzie następujący:

 Pomyślnie podniesiono FE_OVERFLOW i FE_INVALID

Interesujące artykuły...