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

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

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

feraiseexcept () прототип

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

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

Кроме того, вы должны включить FENV_ACCESS , что даст вашей программе доступ к среде с плавающей запятой для проверки возникших исключений.

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

  • исключения: список битовых масок флагов исключения, которые необходимо поднять.
Битовая маска принимает макросы
Макрос Тип Описание
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

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