Функцията feraiseexcept () в C ++ се опитва да повиши всички изключения с плаваща запетая, посочени от аргумента.
Функцията feraiseexcept () е дефинирана в заглавния файл.
feraiseexcept () прототип
int feraiseexcept (int изключения);
Изключенията с плаваща запетая, които трябва да бъдат изведени, са изброени в аргументите excepts.
Също така, трябва да активирате FENV_ACCESS , който ще даде на вашата програма достъп до средата с плаваща запетая, за да тества създадените изключения.
feraiseexcept () Параметри
- изключения: 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