System.Math.RaiseExceptions
Delphi
procedure RaiseExceptions(const ExceptionFlags: TArithmeticExceptions);
C++
extern DELPHI_PACKAGE void __fastcall RaiseExceptions(const TArithmeticExceptions ExceptionFlags = (TArithmeticExceptions() << TArithmeticException::exInvalidOp << TArithmeticException::exZeroDivide << TArithmeticException::exOverflow ));
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
procedure function |
public | System.Math.pas System.Math.hpp |
System.Math | System.Math |
説明
ExceptionFlags
で指定された浮動小数点例外をクリアし発生させます。
次のように、RaiseExceptions の動作はプラットフォームによって異なります。
- Android、iOS、iOS シミュレータ、64 ビット OSX のようなプラットフォームでは、RaiseExceptions では、現在設定されている浮動小数点例外と、
ExceptionFlags
で指定された浮動小数点例外をリセットします。RaiseExceptions では、それ以外の浮動小数点例外をすべてクリアします。そのあと、RaiseExceptions は、いったんリセットした浮動小数点例外をすべて発生させます。 - その他の 32 ビットおよび 64 ビット プラットフォームでは、RaiseExceptions は、浮動小数点例外をすべてクリアし終了します。
デフォルトでは、ExceptionFlags
は次のような DefaultExceptionFlags
です。
DefaultExceptionFlags = [ TArithmeticException.exInvalidOp, TArithmeticException.exZeroDivide, TArithmeticException.exOverflow];
したがって、デフォルトでは、Android、iOS、iOS シミュレータ、64 ビット OSX のようなプラットフォームでは、次の例外が発生します。
- 無効な演算を行おうとしました。
- ゼロで除算しようとしました。
- 数値が、サポートされている正の上限値を超えました。