feraiseexcept - cppreference.com

##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# feraiseexcept

From cppreference.com
< c‎ | numeric‎ | fenv

Defined in header `<fenv.h>` |  |
int feraiseexcept( int excepts ); |  | (since C99)

Attempts to raise all floating point exceptions listed in `excepts` (a bitwise OR of the floating point exception macros). If one of the exceptions is FE_OVERFLOW or FE_UNDERFLOW, this function may additionally raise FE_INEXACT. The order in which the exceptions are raised is unspecified, except that FE_OVERFLOW and FE_UNDERFLOW are always raised before FE_INEXACT.

### [edit] Parameters

excepts | - | bitmask listing the exception flags to raise

### [edit] Return value

​0​ if all listed exceptions were raised, non-zero value otherwise.

### [edit] Example

Run this code

    #include <stdio.h>
    #include <fenv.h>

    #pragma STDC FENV_ACCESS ON

    void show_fe_exceptions(void)
    {
        printf("current exceptions raised: ");
        if(fetestexcept(FE_DIVBYZERO))     printf(" FE_DIVBYZERO");
        if(fetestexcept(FE_INEXACT))       printf(" FE_INEXACT");
        if(fetestexcept(FE_INVALID))       printf(" FE_INVALID");
        if(fetestexcept(FE_OVERFLOW))      printf(" FE_OVERFLOW");
        if(fetestexcept(FE_UNDERFLOW))     printf(" FE_UNDERFLOW");
        if(fetestexcept(FE_ALL_EXCEPT)==0) printf(" none");
        feclearexcept(FE_ALL_EXCEPT);
        printf("\n");
    }

    double some_computation(void)
    {
        /* Computation reaches a state that causes overflow. */
        int r = feraiseexcept(FE_OVERFLOW | FE_INEXACT);
        printf("feraiseexcept() %s\n", (r?"fails":"succeeds"));
        return 0.0;
    }

    int main(void)
    {
        some_computation();
        show_fe_exceptions();

        return 0;
    }

Output:

    feraiseexcept() succeeds
    current exceptions raised:  FE_INEXACT FE_OVERFLOW

### [edit] References

- C11 standard (ISO/IEC 9899:2011):

  - 7.6.2.3 The feraiseexcept function (p: 210)

- C99 standard (ISO/IEC 9899:1999):

  - 7.6.2.3 The feraiseexcept function (p: 191)

### [edit] See also

feclearexcept (C99) | clears the specified floating-point status flags (function) [edit]
fetestexcept (C99) | determines which of the specified floating-point status flags are set (function) [edit]
C++ documentation for feraiseexcept

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=c/numeric/fenv/feraiseexcept&oldid=87815"