方法 : エラー発生時に制御を継続する
更新 : 2007 年 11 月
構造化例外処理に対して Try...Catch...Finally ステートメント (Visual Basic) 構造を使用できます。これにより、コードの実行中に特定の例外が発生した場合に特定のステートメント ブロックを実行できます。このように例外が発生することをコードが例外をスローすると言い、スローされた例外を Catch ステートメントで処理することを例外をキャッチすると言います。
コードによって例外が発生した場合に一連のステートメントを実行するには
Try...Catch...Finally 構造を使用して、例外を引き起こす可能性のあるコードを囲みます。次に、例外が発生した場合に実行するコードを指定し、任意で、Try...Catch...Finally 構造から制御が移る前に実行する一連のステートメントを指定します。
次の例では、Object 変数 givenDate で提供される値からちょうど 100 年後の日時を計算しています。
Dim givenDate As Object Dim nextCentury As Date Try nextCentury = Microsoft.VisualBasic.DateAdd("yyyy", 100, givenDate) Catch thisExcep As System.ArgumentOutOfRangeException ' The resulting date/time is later than December 31, 9999. Catch thisExcep As System.ArgumentException ' At least one argument has an invalid value. Catch thisExcep As System.InvalidCastException ' The value in givenDate cannot be interpreted as a date/time. Catch ' An unforeseen exception has occurred. Finally ' This block is always run before leaving the Try structure. End Try
最初の 3 つの Catch ブロックは、DateAdd 関数 (Visual Basic) から予測可能な例外を処理します。予期しない例外は、最後の Catch ブロックで処理できます。
どのような場合でも、Try...Catch...Finally 構造から制御が移る前に、必ず最後に Finally ブロックで最後のコードが実行されます。Try または Catch ブロックで、オブジェクトまたはデータベース接続などのリソースを作成するまたは開く場合、必要に応じて Finally ブロックを使用してこれらを閉じたり、破棄したりできます。
例外変数 thisExcep が、Dim などの宣言ステートメントで指定されていない場合は、 As 句を持つ Catch ステートメントが宣言として機能します。
参照
処理手順
方法 : 1 つ以上の条件に基づいて、ステートメントを実行する