ハードウェア例外
オペレーティング システムによって認識される標準の例外のほとんどはハードウェア定義された例外です。Windows は下位レベルのソフトウェアの例外を認識しますがオペレーティング システムによって処理される通常これらをお勧めします。
Windows はこのセクションの例外コードに異なるプロセッサ ハードウェア エラーをマップします。場合によってはプロセッサはこのような例外のサブセットのみを生成できます。Windows が例外に関する情報をプリプロセスし適切な例外コードを実行します。
Windows で認識されるハードウェア例外を次の表に示します。:
例外コード |
例外の原因 |
---|---|
STATUS_ACCESS_VIOLATION |
アクセスできないメモリ位置への読み取りまたは書き込み。 |
STATUS_BREAKPOINT |
ハードウェア定義されたブレークポイントに達すると ; デバッガーでのみ使用されます。 |
STATUS_DATATYPE_MISALIGNMENT |
適切に配置されていない任意のアドレス データの読み取りまたは書き込み ; たとえば16 ビットのエンティティはバイト境界上に配置する必要があります。Intel (80x86 のプロセッサには適用できません)。 |
STATUS_FLOAT_DIVIDE_BY_ZERO |
0.0 による浮動小数点型を分割します。 |
STATUS_FLOAT_OVERFLOW |
浮動小数点型の最大正の指数の値。 |
STATUS_FLOAT_UNDERFLOW |
浮動小数点型の最も小さい負の指数部のサイズを超える。 |
STATUS_FLOATING_RESEVERED_OPERAND |
予約浮動小数点形式 (無効な形式の使用) を使用する。 |
STATUS_ILLEGAL_INSTRUCTION |
プロセッサで定義されていないコード命令を実行しようとします。 |
STATUS_PRIVILEGED_INSTRUCTION |
現在のコンピューターのモードで許可されていない命令を実行します。 |
STATUS_INTEGER_DIVIDE_BY_ZERO |
0 による除算を整数型。 |
STATUS_INTEGER_OVERFLOW |
整数の範囲を超える操作を試みます。 |
STATUS_SINGLE_STEP |
シングル ステップモードの 1 種類の命令の実行 ; デバッガーでのみ使用されます。 |
前の表に示した例外の多くはデバッガーオペレーティング システムまたは他の低水準コードによって処理されることを意図しています。整数と浮動小数点のエラーを除きこれらのエラーを処理しないでください。したがって通常は例外を無視するために例外のフィルター処理を使用する必要があります (0 に評価します)。は低レベルの機能が適切に応答することを防ぐことができます。ただし終了ハンドラーの作成 にこれらの低レベルのエラーの潜在的な効果に対する適切な対策を講じることができます。