CARVIEW |
Select Language
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 24 Jul 2025 15:07:21 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Location: /reference/cfenv/fetestexcept/
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 24 Jul 2025 15:07:22 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
ETag: W/"7f96-RcMEMfuqn072rVvghFwTNX89euw"
Content-Encoding: gzip
Returns the exceptions currently set, among those specified by excepts.
The value returned is the bitwise OR representation of the subset of excepts that are currently set in the floating point environment. Or zero, if none of the exceptions in excepts are currently set.
Programs calling this function shall ensure that pragma FENV_ACCESS is enabled for the call.
Otherwise, the exceptions (among those of excepts) currently set.
Possible output:
Note that C floating-point exceptions are not C++ exceptions, and thus are not caught by
Calling this function with pragma FENV_ACCESS off causes undefined behavior.
Reference
C library:
- <cassert> (assert.h)
- <cctype> (ctype.h)
- <cerrno> (errno.h)
-
<cfenv> (fenv.h)C++11
- <cfloat> (float.h)
-
<cinttypes> (inttypes.h)C++11
- <ciso646> (iso646.h)
- <climits> (limits.h)
- <clocale> (locale.h)
- <cmath> (math.h)
- <csetjmp> (setjmp.h)
- <csignal> (signal.h)
- <cstdarg> (stdarg.h)
-
<cstdbool> (stdbool.h)C++11
- <cstddef> (stddef.h)
-
<cstdint> (stdint.h)C++11
- <cstdio> (stdio.h)
- <cstdlib> (stdlib.h)
- <cstring> (string.h)
-
<ctgmath> (tgmath.h)C++11
- <ctime> (time.h)
-
<cuchar> (uchar.h)C++11
- <cwchar> (wchar.h)
- <cwctype> (wctype.h)
Containers:
-
<array>C++11
- <deque>
-
<forward_list>C++11
- <list>
- <map>
- <queue>
- <set>
- <stack>
-
<unordered_map>C++11
-
<unordered_set>C++11
- <vector>
-
Input/Output:
Multi-threading:
-
<atomic>C++11
-
<condition_variable>C++11
-
<future>C++11
-
<mutex>C++11
-
<thread>C++11
-
Other:
- <algorithm>
- <bitset>
-
<chrono>C++11
-
<codecvt>C++11
- <complex>
- <exception>
- <functional>
-
<initializer_list>C++11
- <iterator>
- <limits>
- <locale>
- <memory>
- <new>
- <numeric>
-
<random>C++11
-
<ratio>C++11
-
<regex>C++11
- <stdexcept>
- <string>
-
<system_error>C++11
-
<tuple>C++11
-
<type_traits>C++11
-
<typeindex>C++11
- <typeinfo>
- <utility>
- <valarray>
<cfenv> (fenv.h)
functions
-
feclearexceptC++11
-
fegetenvC++11
-
fegetexceptflagC++11
-
fegetroundC++11
-
feholdexceptC++11
-
feraiseexceptC++11
-
fesetenvC++11
-
fesetexceptflagC++11
-
fesetroundC++11
-
fetestexceptC++11
-
feupdateenvC++11
-
types
pragma
-
FENV_ACCESSC++11
-
macro constants
-
FE_ALL_EXCEPTC++11
-
FE_DFL_ENVC++11
-
FE_DIVBYZEROC++11
-
FE_DOWNWARDC++11
-
FE_INEXACTC++11
-
FE_INVALIDC++11
-
FE_OVERFLOWC++11
-
FE_TONEARESTC++11
-
FE_TOWARDZEROC++11
-
FE_UNDERFLOWC++11
-
FE_UPWARDC++11
-
function
<cfenv>
fetestexcept
int fetestexcept (int excepts);
Test for floating-point exceptions
The value returned is the bitwise OR representation of the subset of excepts that are currently set in the floating point environment. Or zero, if none of the exceptions in excepts are currently set.
Programs calling this function shall ensure that pragma FENV_ACCESS is enabled for the call.
Parameters
- excepts
- Bitmask value: A combination (with bitwise OR) of any number of floating-point exception values supported by the implementation:
macro value description FE_DIVBYZERO Pole error: division by zero, or some other asymptotically infinite result (from finite arguments). FE_INEXACT Inexact: the result is not exact. FE_INVALID Domain error: At least one of the arguments is a value for which the function is not defined. FE_OVERFLOW Overflow range error: The result is too large in magnitude to be represented as a value of the return type. FE_UNDERFLOW Underflow range error: The result is too small in magnitude to be represented as a value of the return type. FE_ALL_EXCEPT All exceptions (selects all of the exceptions supported by the implementation). FE_
).
Return Value
Zero, if none of the exceptions in excepts are set.Otherwise, the exceptions (among those of excepts) currently set.
Example
|
|
Possible output:
FE_OVERFLOW is set The following exceptions are set: FE_INVALID FE_OVERFLOW |
Data races
Each thread maintains a separate floating-point environment with its own state. Spawning a new thread copies the current state. [This applies to C11 and C++11 implementations]Exceptions
No-throw guarantee: this function never throws exceptions.Note that C floating-point exceptions are not C++ exceptions, and thus are not caught by
try/catch
blocks.Calling this function with pragma FENV_ACCESS off causes undefined behavior.
See also
- feraiseexcept
- Raise floating-point exception (function)
- feclearexcept
- Clear floating-point exceptions (function)
- feholdexcept
- Hold floating-point exceptions (function)
Home page | Privacy policy
© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s
Spotted an error? contact us
© cplusplus.com, 2000-2025 - All rights reserved - v3.3.4s
Spotted an error? contact us