例外処理の概要

更新 : 2007 年 11 月

Visual Basic では、構造化および非構造化の両方の例外 (エラー) 処理がサポートされています。アプリケーション内に例外処理のコードを配置することによって、アプリケーションの実行時に発生するほとんどのエラーを処理し、アプリケーションをそのまま実行させることができます。構造化および非構造化のエラー処理を使用して、アプリケーションに影響を与えないように、起こりうるエラーに対する計画を立てることができます。

例外を生成する可能性がある演算子を使用するメソッドや、例外を生成する可能性があるプロシージャを呼び出したりそれにアクセスしたりするメソッドでは、例外処理を使用することをお勧めします。

例外処理が組み込まれていないメソッドで例外が発生した場合、その例外は呼び出し元のメソッド (前のメソッド) に戻されます。前のメソッドにも例外ハンドラがない場合は、さらにそのメソッドの呼び出し元に戻されます。ハンドラを探して、"呼び出し履歴" (アプリケーション内で呼び出された一連のプロシージャを順次さかのぼっていくこと) を続けます。最終的に例外ハンドラが見つからなかった場合は、エラー メッセージが表示され、アプリケーションが終了します。

c68xfk56.alert_note(ja-jp,VS.90).gifメモ :

メソッドには、構造化例外処理と非構造化例外処理のどちらを組み込むこともできますが、両方を 1 つのメソッドに組み込むことはできません。

構造化例外処理

構造化例外処理では、コードのブロックがカプセル化され、各ブロックに 1 つ以上のハンドラが関連付けられます。各ハンドラは、それぞれが処理する例外の種類に対してなんらかのフィルタ条件を指定します。保護ブロックのコードによって例外が発生すると、対応する一連のハンドラが順番に検索されて、一致するフィルタ条件を持つ最初のハンドラが実行されます。1 つのメソッドに複数の構造化例外処理ブロックを使用でき、ブロックが互いに入れ子になっていてもかまいません。

構造化例外処理のためには、Try...Catch...Finally ステートメントが使用されます。詳細については、「Visual Basic の構造化例外処理の概要」を参照してください。

非構造化例外処理

非構造化例外処理のためには、On Error ステートメントが使用されます。非構造化例外処理の On Error ステートメントは、コード ブロックの先頭に配置します。このステートメントは、そのブロック全体にわたるスコープを持ち、そのブロック内で発生したすべてのエラーを処理します。プログラムが他の On Error ステートメントに行き当たると、そのステートメントが有効になり、最初のステートメントは無効になります。詳細については、「非構造化例外処理の概要」を参照してください。

参照

処理手順

例外処理のトラブルシューティング

チュートリアル : 構造化例外処理

概念

エラーの種類

Visual Basic の構造化例外処理の概要

非構造化例外処理の概要

参照

On Error ステートメント (Visual Basic)

その他の技術情報

例外処理のタスク