例外

読み:れいがい
外語:exception 英語
品詞:名詞

プログラムの実行において、正常な実行過程に含まれない事象のこと。

目次

ファイルシステム

  • ファイルを読み込む時に、ファイルが無いか、アクセス権限がない
  • 記憶容量不足により書き込みができない
  • ファイルシステムに書き込む時に、ファイルへのアクセス権限がない
  • ハードウェア異常
  • ファイルシステム、ハードウェアの仕様を超える操作

システム例外

Cなどでは、バッファーオーバーフローが発生しても例外を発生させず、強制終了もしない。これが数々のセキュリティホールを生んだ。

バグに起因するもの

MPUの例外

x86シリーズでの例外は後述する。

概要

例外は、それまでの処理の続行が不可能になった条件でのみ発生する。

そのため、例外が発生した場合は何らかの後始末が必要になる。この後始末のことを例外処理と呼ぶ。

軽微な例外であればプログラムオペレーティングシステム(OS)が例外処理でその例外をリカバリすることも可能だが、致命的な例外の場合はプロセス、OS、ハードウェアを停止させる必要が出てくることもある。

言語処理

多くのプログラミング言語において、例外のための機構が用意されている。

JavaC++C#、Visual Basic .NETのtrycatch構文、古典的BASICのON ERROR GOTOなどが代表的である。

x86

x86シリーズで発生する例外は、次の通りである。

なお、例外の後の二桁の数値は16進数であり、また名称はMicrosoft Windowsで使用されているものである。

  • 例外00 (除算違反)

    プロセッサーで0除算例外が発生した場合に、この例外が返される。

    例えば0除算が試みられた場合、演算結果が出力オペランドに適合しない場合、などがある。

  • 例外01 (デバッガー違反)

    ブレークポイントやタスク切り替えトラップ等を検知した場合に返される。

  • 例外02 (NMI割り込み)

    ハードウェアのマスク不可割り込み(NMI)で使用される。

  • 例外03 (ブレークポイントトラップ)

    デバッガーが設定したブレークポイントによって発生する。

  • 例外04 (オーバーフロートラップ)

    EFLAGSのOF(オーバーフローフラグ)が1の時にINTO命令が実行された場合に発生する。

  • 例外05 (境界チェック違反)

    BOUND命令のインデックスが範囲外の場合に発生する。

  • 例外06 (無効なオペコード違反)

    無効な命令を実行しようとした時に発生する。

  • 例外07 (コプロセッサ利用不可違反)

    数値演算コプロセッサーが搭載されていないにも関わらず、浮動少数点型命令が実行された場合に発生する。

  • 例外08 (ダブル フォールト)

    例外エラー例外処理中に、別の例外が発生すると、この例外が発生する。

  • 例外09 (コプロセッサ セグメント オーバーラン)

    浮動小数点命令で、セグメントの終了位置を超えてメモリーアクセスが発生すると、この例外が発生する。

    逆に浮動小数点オペランドの開始アドレスがセグメント外の場合は、一般保護違反になる。

  • 例外0A (無効なタスク状態セグメント)

    タスクステートセグメント(TSS)内の何らかのディスクリプター情報が無効であると、この例外が発生する。

  • 例外0B (不在違反)

    オペレーティングシステムで仮想記憶機能を使用時、「不在」とマークされたセグメントに対しアクセスされた場合に、この例外が発生する。

  • 例外0C (スタック違反)

    命令が、スタックセグメントの制限を超えるメモリーを参照すると、この例外が発生する。

  • 例外0D (一般保護違反)

    他の例外に該当しない状態となると、この例外が発生する。

    通常、そのプログラムは強制終了させられる。

  • 例外0E (ページ違反)

    「不在」に設定されたページにアクセスが発生したときに、この例外が発生する。

  • 例外0F

    将来用の予約。

  • 例外10 (コプロセッサ エラー)

    浮動小数点演算コプロセッサーにアクセスできない場合に、この例外が発生する。

  • 例外11 (アライメント チェック違反)

    i486以降のプロテクトモードで、アライメントが必要な命令でアライメントされていな場合に、この例外が発生する。

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club