C ++ feraiseexcept () - C ++ standarta bibliotēka

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ļ.
Bitmasks pieņēma makro
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

Interesanti raksti...