VB.NET では、Try または On Error 文で実行時エラーをトラップすることができます。この文は、文字通り、アプリケーション内に一般的なトラップを設定します。この文では、エラーが発生すると専用に書かれたエラー ハンドラに自動的に分岐します。システムの既定のエラー処理はバイパスすることです。
On Error 文には、次の 3 つの形式があります。
On Error Resume Next 文は、エラーを無視する場合に使用します。この文では、エラーをトラップしてエラー メッセージを表示しプログラムを中止させる代わりに、次のコード行に移って実行処理を続行します。
たとえば、モデル空間で循環的に各図形の色を変更するプロシージャを作成する場合、ロックした画層上の図形の色を変更しようとすると AutoCAD がエラーを返すことが分かっています。そこで、プログラムを中止する代わりに、単純にロックした画層をスキップして残りの図形の処理を続行することにします。On Error Resume Next 文では、これらのことが可能です。
On Error GoTo Label 文は、エラー ハンドラを明示的に記述したい場合に使用します。この文はエラーをトラップし、エラー メッセージを表示しプログラムを中止する代わりに、コード内の特定の箇所にジャンプします。これでコードによってアプリケーションに適したエラー対応をすることができます。たとえば、0(ゼロ)、行番号、または ErrNoFileFound などの名前付きのラベルを使用し、プログラムの開始位置にジャンプできます。名前付きラベルは、次の構文を使用して定義します。
HandlerName:
Exception オブジェクトは Try 文と一緒に使用され、Err オブジェクトは On Error 文でトラップしたエラー タイプの情報を提供するために使用されます。このオブジェクトには次の一連のプロパティがあります。Number、Description、Source、HelpFile、HelpContext、および LastDLLError です。Err オブジェクトのプロパティは最も新しいエラーの情報で埋められます。最も重要なプロパティは Number と Description プロパティです。Number プロパティにはエラーに対応した、他と重複しないエラー コードがあり、Description プロパティには通常表示されるエラー メッセージが含まれます。
エラー ハンドラでは、エラーの Number プロパティを期待値と比較することができます。これにより、発生したエラーの性質を調べることができます。どのような種類のエラーを扱っているかが分かれば適切な対処が可能になります。