Vb.net-exception-handling
VB.Net-例外処理
例外は、プログラムの実行中に発生する問題です。 例外は、ゼロ除算の試行など、プログラムの実行中に発生する例外的な状況への応答です。
例外は、プログラムのある部分から別の部分に制御を移す方法を提供します。 VB.Net例外処理は、 Try 、 Catch 、 Finally および Throw の4つのキーワードに基づいて構築されています。
- Try -Tryブロックは、特定の例外がアクティブになるコードのブロックを識別します。 その後に1つ以上のCatchブロックが続きます。
- キャッチ-プログラムは、問題を処理するプログラム内の場所で例外ハンドラーを使用して例外をキャッチします。 Catchキーワードは、例外のキャッチを示します。
- 最後に-finallyブロックは、例外がスローされるかどうかに関係なく、指定された一連のステートメントを実行するために使用されます。 たとえば、ファイルを開く場合は、例外が発生したかどうかにかかわらず、ファイルを閉じる必要があります。
- Throw -問題が発生すると、プログラムは例外をスローします。 これは、Throwキーワードを使用して行われます。
構文
ブロックが例外を発生させると仮定すると、メソッドは、TryキーワードとCatchキーワードの組み合わせを使用して例外をキャッチします。 Try/Catchブロックは、例外を生成する可能性のあるコードの周りに配置されます。 Try/Catchブロック内のコードは保護されたコードと呼ばれ、Try/Catchを使用するための構文は次のようになります-
tryブロックが異なる状況で複数の例外を発生させた場合に備えて、複数のcatchステートメントをリストダウンして、異なるタイプの例外をキャッチできます。
.Net Frameworkの例外クラス
Net Frameworkでは、例外はクラスによって表されます。 .Net Frameworkの例外クラスは、主に直接または間接的に System.Exception クラスから派生しています。 System.Exceptionクラスから派生した例外クラスには、 System.ApplicationException および System.SystemException クラスがあります。.
- System.ApplicationException* クラスは、アプリケーションプログラムによって生成された例外をサポートします。 したがって、プログラマーによって定義された例外は、このクラスから派生する必要があります。
次の表は、Sytem.SystemExceptionクラスから派生した定義済みの例外クラスの一部を示しています-
Exception Class | Description |
---|---|
System.IO.IOException | Handles I/O errors. |
System.IndexOutOfRangeException | Handles errors generated when a method refers to an array index out of range. |
System.ArrayTypeMismatchException | Handles errors generated when type is mismatched with the array type. |
System.NullReferenceException | Handles errors generated from deferencing a null object. |
System.DivideByZeroException | Handles errors generated from dividing a dividend with zero. |
System.InvalidCastException | Handles errors generated during typecasting. |
System.OutOfMemoryException | Handles errors generated from insufficient free memory. |
System.StackOverflowException | Handles errors generated from stack overflow. |
例外処理
VB.Netは、tryブロックとcatchブロックの形式で例外処理の問題に対する構造化されたソリューションを提供します。 これらのブロックを使用すると、コアプログラムステートメントがエラー処理ステートメントから分離されます。
これらのエラー処理ブロックは、 Try 、 Catch 、および Finally キーワードを使用して実装されます。 以下は、ゼロ条件による除算が発生したときに例外をスローする例です-
上記のコードをコンパイルして実行すると、次の結果が生成されます-
ユーザー定義の例外の作成
独自の例外を定義することもできます。 ユーザー定義の例外クラスは、 ApplicationException クラスから派生しています。 次の例はこれを示しています-
上記のコードをコンパイルして実行すると、次の結果が生成されます-
オブジェクトを投げる
System.Exceptionクラスから直接または間接的に派生したオブジェクトの場合、オブジェクトをスローできます。
あなたは、現在のオブジェクトをスローするようにキャッチブロックでスローステートメントを使用することができます-
次のプログラムはこれを示しています-
上記のコードをコンパイルして実行すると、次の結果が生成されます-