例外処理のトラブルシューティング
更新 : 2007 年 11 月
このトピックでは、例外を扱うときによく生じる問題とその対処方法を説明します。
Visual Basic は、構造化例外処理をサポートしています。構造化例外処理を使うと、信頼性が高く包括的なエラー ハンドラによって、プログラムの作成および管理を行うことができます。構造化例外処理とは、実行時にエラーの検出および処理を行うためのコードであり、制御構造 (Select Case や While に似た制御構造) と、例外、コードの保護ブロック、およびフィルタが組み合わされています。
内部例外
前の例外の直接的な結果として例外がスローされた場合、InnerException プロパティによって元のエラーが説明されます。この情報により、エラーをより効率的に処理できます。元のエラーがない場合、InnerException の値は、null 参照または Visual Basic の Nothing になります。このプロパティは読み取り専用です。詳細については、「方法 : 例外の内部例外をチェックする」を参照してください。
Try...Catch ステートメント
コードの Catch ブロックの順序が間違っていると、例外を正しくキャッチできない場合があります。Catch ステートメントは、具体的なものから汎用的なものへという順序で記述する必要があります。Catch ブロック単独では、Exception から派生したすべての例外をキャッチします。したがって、常に Finally の直前のブロックとして配置する必要があります。