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