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,Exceptsund 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.