System.FSetExceptFlag
Delphi
function FSetExceptFlag(NewFlags: UInt32; Excepts: UInt32): UInt32;
C++
extern DELPHI_PACKAGE unsigned __fastcall FSetExceptFlag(unsigned NewFlags, unsigned Excepts = (unsigned)(0x3f));
Inhaltsverzeichnis
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.