Resume ステートメント

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

ここでは構造化されていない例外処理と On Error と Resume のステートメントを使用するよりも構造化例外処理を使用することをお勧めします。詳細については、「Try...Catch...Finally ステートメント (Visual Basic)」を参照してください。

Resume [ Next | line ]

指定項目

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

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

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

解説

[!メモ]

ここでは構造化されていない例外処理と On Error と Resume のステートメントを使用するよりも構造化例外処理を使用することをお勧めします。詳細については、「Try...Catch...Finally ステートメント (Visual Basic)」を参照してください。

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

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

使用例

この例では、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 内)

参照

関連項目

Try...Catch...Finally ステートメント (Visual Basic)

Error ステートメント

On Error ステートメント (Visual Basic)