例外の処理とスロー

プログラムには、実行中に発生するエラーを統一された方法で処理する機能が必要です。共通言語ランタイムでは、フォルト トレラントなソフトウェアの開発を支援するため、統一された方法でプログラムに対してエラーを通知するモデルが用意されています。.NET Framework のすべての操作で、例外をスローしてエラーを通知します。

従来のプログラミング言語のエラー処理モデルでは、エラーを検出してそれに対応するハンドラを検索する言語固有の方法か、オペレーティング システムのエラー処理方法のいずれかに基づいていました。ランタイムで実装される例外処理には、次の機能があります。

  • 例外を生成する言語や、例外を処理する言語に依存せずに例外を処理します。

  • 例外を処理するときに特定の言語の構文を必要とせず、各言語で固有の構文を定義できます。

  • プロセス間で例外をスローしたり、マシン境界を越えて例外をスローしたりできます。

リターン コードなどの他のエラー通知方法に比べ、例外を使用したエラー通知方法には多くの利点があります。エラーは必ず通知されます。エラー発生後に無効な値がシステム内に反映されません。リターン コードを確認する必要がありません。例外処理コードを簡単に追加でき、これによりプログラムの信頼性が向上します。ランタイムでの例外処理は、Windows ベースの C++ 例外処理よりも高速です。

例外スレッドがマネージ コード ブロックとアンマネージ コード ブロックを定期的に走査するため、ランタイムはマネージ コードとアンマネージ コードのいずれでも例外をスローまたはキャッチできます。アンマネージ コードには、C++ スタイルの SEH 例外や COM ベースの HRESULTS などを含めることができます。

このセクションの内容

  • 例外の概要
    共通言語ランタイムの例外を概説します。
  • 例外階層
    ほとんどの例外の派生元である例外について説明します。
  • 例外処理の基本事項
    catch、throw、finally の各ステートメントを使用した例外の処理方法について説明します。

参照

関連するセクション