Resume ステートメント

エラー処理ルーチンが終了した後、実行を再開します。

コードでは、非構造化例外処理と On Error および Resume ステートメントを使用するのではなく、可能な限り、構造化例外処理を使用することをお勧めします。 詳しくは、「Try...Catch...Finally ステートメント」をご覧ください。

構文

Resume [ Next | line ]  

指定項目

Resume
必須です。 エラー ハンドラーと同じプロシージャでエラーが発生した場合は、エラーの原因となったステートメントを使用して実行が再開されます。 呼び出されたプロシージャでエラーが発生した場合、エラー処理ルーチンを含むプロシージャから最後に呼び出されたステートメントで実行が再開されます。

Next
任意。 エラー ハンドラーと同じプロシージャでエラーが発生した場合は、エラーの原因となったステートメントの直後のステートメントを使用して実行が再開されます。 呼び出されたプロシージャでエラーが発生した場合、エラー処理ルーチン (または On Error Resume Next ステートメント) を含むプロシージャから最後に呼び出されたステートメントの直後のステートメントを使用して、実行が再開されます。

line
任意。 実行は、必須の引数 line で指定した行で再開されます。 line 引数は、行ラベルまたは行番号であり、エラー ハンドラーと同じプロシージャ内にある必要があります。

Remarks

注意

コードでは、非構造化例外処理と On Error および Resume ステートメントを使用するのではなく、可能な限り、構造化例外処理を使用することをお勧めします。 詳しくは、「Try...Catch...Finally ステートメント」をご覧ください。

エラー処理ルーチン以外の場所で Resume ステートメントを使用すると、エラーが発生します。

Resume ステートメントは、Try...Catch...Finally ステートメントを含むプロシージャ内では使用できません。

この例では、Resume ステートメントを使用してプロシージャのエラー処理を終了し、エラーの原因となったステートメントを使用して実行を再開します。 Resume ステートメントの使用方法を示すために、エラー番号 55 が生成されます。

Sub ResumeStatementDemo()
  On Error GoTo ErrorHandler   ' Enable error-handling routine.
  Dim x As Integer = 32
  Dim y As Integer = 0
  Dim z As Integer
  z = x / y   ' Creates a divide by zero error
  Exit Sub   ' Exit Sub to avoid error handler.
ErrorHandler:     ' Error-handling routine.
  Select Case Err.Number   ' Evaluate error number.
      Case 6   ' "Divide by zero" error.
        y = 1 ' Sets the value of y to 1 and tries the calculation again.
      Case Else
        ' Handle other situations here....
  End Select
  Resume   ' Resume execution at same line
  ' that caused the error.
End Sub

必要条件

名前空間: Microsoft.VisualBasic

アセンブリ: Visual Basic ランタイム ライブラリ (Microsoft.VisualBasic.dll)

関連項目