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

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

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

прототип feraiseexcept ()

 int feraiseexcept (int excepts);

Винятки з плаваючою комою, які потрібно викликати, перелічені в аргументах excepts.

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

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

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

feraiseexcept () Повертається значення

  • Функція feraiseexcept () повертає нульове значення, якщо підняті всі винятки, зазначені у винятках.
  • В іншому випадку він повертає ненульове значення.

Приклад: Як працює функція 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

Цікаві статті...