Функција фераисеекцепт () у Ц ++ покушава да подигне све изузетке са помичном зарезом назначене аргументом.
Функција фераисеекцепт () је дефинисана у датотеци заглавља.
прототип фераисеекцепт ()
инт фераисеекцепт (инт изузеци);
Изузеци са покретном зарезом које треба покренути наведени су у аргументима изузеци.
Такође, требало би да омогућите ФЕНВ_АЦЦЕСС , који ће вашем програму омогућити приступ окружењу са покретном зарезом да би тестирао покренуте изузетке.
параметри фераисеекцепт ()
- изузеци: Битмаск списак заставица за изузеће које треба подићи.
Макро | Тип | Опис |
---|---|---|
ФЕ_ДИВБИЗЕРО | Погрешка пола | Дељење са нулом |
ФЕ_ИНЕКСАЦТ | Нетачно | Нису тачни резултати као што је (1.0 / 3.0) |
ФЕ_ИНВАЛИД | Грешка домена | Најмање један коришћени аргумент је вредност за коју функција није дефинисана |
ФЕ_ОВЕРФЛОВ | Грешка у опсегу преливања | Резултат је превелике величине да би га могао представити тип повратка |
ФЕ_УНДЕРФЛОВ | Грешка опсега подлива | Резултат је премале величине да би га могао представити тип повратка |
ФЕ_АЛЛ_ЕКСЦЕПТ | Сви изузеци | Сви изузеци подржани имплементацијом |
фераисеекцепт () Повратна вредност
- Функција фераисеекцепт () враћа нулту вредност ако су подигнути сви изузеци наведени у екцептс.
- У супротном враћа вредност која није нула.
Пример: Како функционише функција фераисеекцепт ()
#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; )
Када покренете програм, излаз ће бити:
Успешно подигнути ФЕ_ОВЕРФЛОВ и ФЕ_ИНВАЛИД