Namensräume
Varianten
Aktionen

feraiseexcept

Von cppreference.com
< c‎ | numeric‎ | fenv
Definiert in der Headerdatei <fenv.h>
int feraiseexcept( int excepts );
(seit C99)

Versucht, alle in excepts aufgeführten Gleitkommaausnahmen auszulösen (eine bitweise ODER-Verknüpfung der Gleitkommaausnahme-Makros). Wenn eine der Ausnahmen FE_OVERFLOW oder FE_UNDERFLOW ist, kann diese Funktion zusätzlich FE_INEXACT auslösen. Die Reihenfolge, in der die Ausnahmen ausgelöst werden, ist nicht spezifiziert, außer dass FE_OVERFLOW und FE_UNDERFLOW immer vor FE_INEXACT ausgelöst werden.

Inhalt

[bearbeiten] Parameter

excepts - Bitmaske, die die auszulösenden Ausnahme-Flags auflistet

[bearbeiten] Rückgabewert

0, wenn alle aufgelisteten Ausnahmen ausgelöst wurden, andernfalls ein von Null verschiedener Wert.

[bearbeiten] Beispiel

#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;
}

Ausgabe

feraiseexcept() succeeds
current exceptions raised:  FE_INEXACT FE_OVERFLOW

[bearbeiten] Referenzen

  • C11-Standard (ISO/IEC 9899:2011)
  • 7.6.2.3 Die Funktion feraiseexcept (S. 210)
  • C99-Standard (ISO/IEC 9899:1999)
  • 7.6.2.3 Die Funktion feraiseexcept (S. 191)

[bearbeiten] Siehe auch

löscht die angegebenen Gleitkomma-Statusflags
(function) [edit]
ermittelt, welche der angegebenen Gleitkomma-Statusflags gesetzt sind
(function) [edit]
C++-Dokumentation für feraiseexcept