C ++ feraiseexcept () - C ++ стандартна библиотека

Функцията feraiseexcept () в C ++ се опитва да повиши всички изключения с плаваща запетая, посочени от аргумента.

Функцията feraiseexcept () е дефинирана в заглавния файл.

feraiseexcept () прототип

 int feraiseexcept (int изключения);

Изключенията с плаваща запетая, които трябва да бъдат изведени, са изброени в аргументите excepts.

Също така, трябва да активирате FENV_ACCESS , който ще даде на вашата програма достъп до средата с плаваща запетая, за да тества създадените изключения.

feraiseexcept () Параметри

  • изключения: Bitmask списък на флаговете за изключение, които да се повишат.
Bitmask прие макроси
Макро Тип Описание
FE_DIVBYZERO Грешка на полюса Деление на нула
FE_INEXACT Неточен Не са точни резултати като (1.0 / 3.0)
FE_INVALID Грешка в домейна Поне един използван аргумент е стойност, за която функцията не е дефинирана
FE_OVERFLOW Грешка в обхвата на препълване Резултатът е твърде голям по размер, за да бъде представен от типа на връщане
FE_UNDERFLOW Грешка в диапазона на подтока Резултатът е твърде малък по размер, за да бъде представен от типа на връщане
FE_ALL_EXCEPT Всички изключения Всички изключения, поддържани от изпълнението

feraiseexcept () Върната стойност

  • Функцията feraiseexcept () връща нулева стойност, ако са повдигнати всички изключения, посочени от excepts.
  • В противен случай връща ненулева стойност.

Пример: Как работи функцията 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; )

Когато стартирате програмата, изходът ще бъде:

 Успешно повдигнати FE_OVERFLOW и FE_INVALID

Интересни статии...