System.FSetExceptFlag

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

function FSetExceptFlag(NewFlags: UInt32; Excepts: UInt32): UInt32;

C++

extern DELPHI_PACKAGE unsigned __fastcall FSetExceptFlag(unsigned NewFlags, unsigned Excepts = (unsigned)(0x3f));

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
function public
System.pas
System.hpp
System System


Beschreibung

Setzt die Flags für Gleitkomma-Exceptions.

FSetExceptFlag setzt die im Parameter Excepts angegebenen Gleitkomma-Exception-Flags auf die im Parameter NewFlags angegebenen Werte.

Excepts und NewFlags repräsentieren Kombinationen der folgenden Werte:

Konstante
feeINEXACT
feeUNDERFLOW
feeOVERFLOW
feeDIVBYZERO
feeINVALID

FSetExceptFlag gibt die vorherigen Werte der in Excepts angegebenen Gleitkomma-Exception-Flags der Einheit zurück.

Excepts legt fest, welche Exception-Ereignis-Flags geändert und zurückgegeben werden sollen. Zum Beispiel: Wenn Excepts feeDIVBYZERO oder feeINVALID ist, werden nur diese Flags entsprechend der Werte in NewFlags geändert, und FSetExceptFlag gibt die alten Status nur dieser feeDIVBYZERO- und feeINVALID-Flags zurück.

Wenn Excepts 0 ist, ändert FSetExceptFlag keine Flags und gibt 0 zurück.

Standardmäßig ist Excepts = feeALLEXCEPT.feeALLEXCEPT legt die Menge aller möglichen Gleitkomma-Exception-Flags fest.

Beispiel

FSetExceptFlag(0); // Clears all pending floating-point number exceptions.
FSetExceptFlag(0, feeOVERFLOW); // Clears the pending floating-point number's overflow exception flag. Other flags are not changed.
 
FSetExceptFlag(feeALLEXCEPTION, feeOVERFLOW + feeUNDERFLOW); // Sets the overflow and underflow exception flag. Other flags are not changed.
 
FSetExceptFlag(feeOVERFLOW + feeUNDERFLOW); // Sets the overflow and underflow exception flag and clears other in-exact, div-by-zero and invalid-op flags.

Hinweise:

  • Exception-Ereignis-Flags sind kumulativ. Einige Plattformen unterstützen Hardware-Exceptions. Wenn alle Exceptions aktiviert sind, löst die Gleitkomma-Einheit die Hardware-Exception sofort aus. Wenn die Exception maskiert ist, werden Exception-Ereignisse im Ereignis-Flag behalten.
  • NewFlags, Excepts und Rückgabewerte sind auf jeder Plattform unterschiedlich. Um die Kompatibilität auf verschiedenen Plattformen zu gewährleisten, sollten Sie die Verwendung von SetExceptions und TArithmeticExceptions in Betracht ziehen.

Siehe auch