例外の処理とスロー
プログラムには、実行中に発生するエラーを統一された方法で処理する機能が必要です。共通言語ランタイムでは、フォルト トレラントなソフトウェアの開発を支援するため、統一された方法でプログラムに対してエラーを通知するモデルが用意されています。.NET Framework のすべての操作で、例外をスローしてエラーを通知します。
従来のプログラミング言語のエラー処理モデルでは、エラーを検出してそれに対応するハンドラを検索する言語固有の方法か、オペレーティング システムのエラー処理方法のいずれかに基づいていました。ランタイムで実装される例外処理には、次の機能があります。
例外を生成する言語や、例外を処理する言語に依存せずに例外を処理します。
例外を処理するときに特定の言語の構文を必要とせず、各言語で固有の構文を定義できます。
プロセス間で例外をスローしたり、マシン境界を越えて例外をスローしたりできます。
リターン コードなどの他のエラー通知方法に比べ、例外を使用したエラー通知方法には多くの利点があります。エラーは必ず通知されます。エラー発生後に無効な値がシステム内に反映されません。リターン コードを確認する必要がありません。例外処理コードを簡単に追加でき、これによりプログラムの信頼性が向上します。ランタイムでの例外処理は、Windows ベースの C++ 例外処理よりも高速です。
例外スレッドがマネージ コード ブロックとアンマネージ コード ブロックを定期的に走査するため、ランタイムはマネージ コードとアンマネージ コードのいずれでも例外をスローまたはキャッチできます。アンマネージ コードには、C++ スタイルの SEH 例外や COM ベースの HRESULTS などを含めることができます。
このセクションの内容
- 例外の概要
共通言語ランタイムの例外を概説します。
- Exception クラスとプロパティ
例外オブジェクトの要素について説明します。
- 例外階層
ほとんどの例外の派生元である例外について説明します。
- 例外処理の基本事項
catch、throw、finally の各ステートメントを使用した例外の処理方法について説明します。
- 例外処理の実施
推奨される例外処理方法について説明します。
- COM 相互運用の例外の処理
アンマネージ コードでスローおよびキャッチされる例外の処理方法について説明します。
参照
- Exception クラス
すべての例外の継承元クラスに関する参照情報です。
- ApplicationException クラス
すべてのアプリケーション生成例外の派生元クラスに関する参照情報です。
- SystemException クラス
すべてのシステム生成例外の派生元クラスに関する参照情報です。
関連するセクション
- 高度な COM 相互運用性
マネージ コードとアンマネージ コードでの例外の動作について説明します。
- 方法 : HRESULT に例外を割り当てる
マネージ コードとアンマネージ コードとの間での例外のマップについて説明します。