例外処理
更新 : 2007 年 11 月
プログラムの実行時に、"例外" と呼ばれるさまざまな異常状態やエラーが発生することがあります。例外には、実行時のメモリ不足、リソースの割り当てエラー、ファイル検索のエラーなどがあります。
Microsoft Foundation Class ライブラリでは、ANSI C++ 標準で提唱される異常状態の扱いと同じ例外処理機構を使用します。異常状態に陥る可能性のある関数を呼び出す前に、例外ハンドラがセットアップされている必要があります。関数で異常状態が発生した場合は、例外がスローされ、制御が例外ハンドラに移ります。
Microsoft Foundation Class ライブラリには、例外ハンドラをセットアップするいくつかのマクロが用意されています。ほかにも、必要に応じて特別な例外をスローしプログラムを終了させる補助となる、多くのグローバル関数があります。これらのマクロやグローバル関数は次のカテゴリに分類されます。
例外ハンドラを組み立てる例外処理マクロ
特定の型の例外を生成する例外スロー関数
プログラムを終了させる終了関数
例外処理の例や詳細については、「例外処理 (MFC)」を参照してください。
例外処理マクロ
例外処理をするコード ブロックを指定します。 |
|
TRY ブロックでの例外をキャッチするためのコード ブロックを指定します。 |
|
TRY ブロックでのすべての例外をキャッチするためのコード ブロックを指定します。 |
|
TRY ブロックでの付加的な例外をキャッチするためのコード ブロックを指定します。 |
|
TRY ブロックでのすべての付加的な例外をキャッチするためのコード ブロックを指定します。 |
|
直前の CATCH または AND_CATCH ブロックの終わりを示します。 |
|
直前の CATCH_ALL ブロックの終わりを示します。 |
|
指定された例外をスローします。 |
|
現在処理されている例外を 1 つ外側のハンドラにスローします。 |
例外スロー関数
アーカイブの例外をスローします。 |
|
ファイルの例外をスローします。 |
|
メモリの例外をスローします。 |
|
サポートしていない機能にアクセスしたときの例外をスローします。 |
|
Windows のリソースが見つからないときの例外をスローします。 |
|
ユーザーが起動したプログラムの動作での例外をスローします。 |
MFC ライブラリには、OLE 例外専用の 2 つの例外スロー関数が用意されています。
OLE 例外関数
OLE オートメーション関数内の例外をスローします。 |
|
OLE の例外をスローします。 |
データベースの例外をサポートするため、データベース クラスには 2 つの例外処理クラス CDBException と CDaoException、およびこの例外クラス型をサポートするグローバル関数が用意されています。
DAO 例外関数
独自に作成したコードから CDaoException をスローします。 |
|
独自に作成したコードから CDBException をスローします。 |
MFC に用意されている終了関数を次に示します。
終了関数
致命的なエラーが発生したときに、アプリケーションの実行を終了するために呼び出されます。 |