目次
何が異常なのか
例外とは、システムの制約またはアプリケーション プログラムの制約に違反するか、通常の操作中に予期されなかったプログラムの実行時エラーが発生することです。
プログラムが例外を処理するコードを提供しない場合、システムはプログラムをハングさせます。
ステートメントを試してください
例外クラス
例外オブジェクトには、例外の原因に関する情報を含む読み取り専用プロパティが含まれています
キャッチ句
一般的な catch 句はすべての例外を受け入れることができますが、スローされた例外の種類を決定することはできません。これにより、発生する可能性のある例外の通常の処理とクリーンアップのみが可能になります
特別な catch 句の形式は、引数として例外クラスの名前を取ります。指定されたクラスの例外またはそれから派生した例外クラスに一致します
オブジェクトを含む特定の catch 句は、例外に関するほとんどの情報を提供します。これは、指定されたクラスの例外、またはそれから派生した例外クラスに一致します。また、CLR への参照である例外インスタンス (例外変数と呼ばれます) も提供します。作成された例外オブジェクトへの参照。発生した例外に関する詳細情報を取得するために、catch 節ブロック内で例外変数の属性にアクセスできます。
キャッチ句
catch 句セクションには、複数の catch 句を含めることができます
例外が発生すると、システムは catch 句のリストを順番に検索し、例外オブジェクト タイプに一致する最初の catch 句が実行されます。catch 句の順序には、次の 2 つの重要な規則があります。
最終的にブロック
プログラムの制御フローが finally ブロックを含む try ステートメントに入ると、finally は常に実行されます。
try ブロックに return ステートメントがあっても、finally ブロックは実行されます。
例外のハンドラーを見つける
プログラムが例外を生成すると、システムはプログラムが処理コードを提供しているかどうかを確認します
さらに検索
try ステートメントで保護されていないコード セグメントで例外が発生した場合、または try ステートメントに一致する例外ハンドラーがない場合、システムはさらに進んで一致する処理コードを見つける必要があります。これを行うために、呼び出しスタックを順番に検索して、一致するハンドラーを持つ外側の try ブロックがあるかどうかを確認します。
原則
例外をスローする
throw ステートメントを使用して、コードで明示的に例外をスローさせることができます。throw ステートメントの構文は次のとおりです。
例外オブジェクトをスローします。
例外なくスローするオブジェクト