Funkcija feraiseexcept () programmā C ++ mēģina izvirzīt visus argumentā norādītos peldošā komata izņēmumus.
Funkcija feraiseexcept () ir definēta galvenes failā.
feraiseexcept () prototips
int feraiseexcept (int izņēmumi);
Peldošo punktu izņēmumi, kas jāizceļ, ir uzskaitīti argumentu izņēmumos.
Jums vajadzētu arī iespējot FENV_ACCESS , kas jūsu programmai ļaus piekļūt peldošā komata videi, lai pārbaudītu izvirzītos izņēmumus.
feraiseexcept () parametri
- izņēmumi: Bitmask saraksts ar izņēmuma karodziņiem, kas jāpaceļ.
Makro | Tips | Apraksts |
---|---|---|
FE_DIVBYZERO | Pole kļūda | Dalīšana ar nulli |
FE_INEXACT | Neprecīzi | Nav precīzi rezultāti, piemēram, (1.0 / 3.0) |
FE_INVALID | Domēna kļūda | Vismaz viens izmantotais arguments ir vērtība, kurai funkcija nav definēta |
FE_OVERFLOW | Pārplūdes diapazona kļūda | Rezultāts ir pārāk liels, lai to attēlotu ar atgriešanās veidu |
FE_UNDERFLOW | Pārplūdes diapazona kļūda | Rezultāts ir pārāk mazs, lai to attēlotu ar atgriešanās veidu |
FE_ALL_EXCEPT | Visi izņēmumi | Visi izņēmumi, kurus atbalsta ieviešana |
feraiseexcept () Atgriešanās vērtība
- Funkcija feraiseexcept () atgriež nulles vērtību, ja tiek paaugstināti visi ar izņēmumiem norādītie izņēmumi.
- Pretējā gadījumā tā atgriež vērtību, kas nav nulle.
Piemērs: Kā darbojas funkcija 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; )
Palaidot programmu, izeja būs:
Veiksmīgi paaugstināti FE_OVERFLOW un FE_INVALID