La funzione feraiseexcept () in C ++ tenta di sollevare tutte le eccezioni in virgola mobile specificate dall'argomento.
La funzione feraiseexcept () è definita nel file di intestazione.
prototipo feraiseexcept ()
int feraiseexcept (int tranne);
Le eccezioni in virgola mobile da sollevare sono elencate nell'argomento tranne.
Inoltre, dovresti abilitare FENV_ACCESS , che darà al tuo programma l'accesso all'ambiente Floating point per testare le eccezioni sollevate.
Parametri feraiseexcept ()
- tranne: elenco maschera di bit dei flag di eccezione da sollevare.
Macro | genere | Descrizione |
---|---|---|
FE_DIVBYZERO | Errore di polo | Divisione per zero |
FE_INEXACT | Inesatto | Risultati non esatti come (1.0 / 3.0) |
FE_INVALID | Errore di dominio | Almeno un argomento utilizzato è un valore per il quale la funzione non è definita |
FE_OVERFLOW | Errore di intervallo di overflow | Il risultato è di grandezza troppo grande per essere rappresentato dal tipo restituito |
FE_UNDERFLOW | Errore di intervallo di underflow | Il risultato è di grandezza troppo piccolo per essere rappresentato dal tipo restituito |
FE_ALL_EXCEPT | Tutte le eccezioni | Tutte le eccezioni supportate dall'implementazione |
feraiseexcept () Restituisce il valore
- La funzione feraiseexcept () restituisce un valore zero se vengono sollevate tutte le eccezioni specificate da tranne.
- Altrimenti restituisce un valore diverso da zero.
Esempio: come funziona la funzione 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; )
Quando esegui il programma, l'output sarà:
Generati con successo FE_OVERFLOW e FE_INVALID