Compartilhar via


Instrução Resume

Retoma a execução depois que uma rotina de tratamento de erros é concluída.

Sugerimos que você use o tratamento de exceção estruturado em seu código sempre que possível, em vez de usar o tratamento de exceção não estruturado e as instruções On Error e Resume. Para obter mais informações, consulte Instrução Try...Catch...Finally.

Sintaxe

Resume [ Next | line ]  

Partes

Resume
Obrigatórios. Se o erro ocorreu no mesmo procedimento que o manipulador de erros, a execução será retomada com a instrução que causou o erro. Se o erro ocorreu em um procedimento chamado, a execução será retomada na instrução que foi chamada pela última vez para fora do procedimento que contém a rotina de tratamento de erros.

Next
Opcional. Se o erro ocorreu no mesmo procedimento que o manipulador de erros, a execução será retomada com a instrução que segue imediatamente a instrução que causou o erro. Se o erro ocorreu em um procedimento chamado, a execução será retomada na instrução que segue imediatamente a instrução que foi chamada pela última vez para fora do procedimento que contém a rotina de tratamento de erros (ou a instrução On Error Resume Next).

line
Opcional. A execução é retomada na linha especificada no argumento line exigido. O argumento line é um rótulo de linha ou número de linha e deve estar no mesmo procedimento que o manipulador de erros.

Comentários

Observação

Recomendamos que você use o tratamento de exceção estruturado em seu código sempre que possível, em vez de usar o tratamento de exceção não estruturado e as instruções On Error e Resume. Para obter mais informações, consulte Instrução Try...Catch...Finally.

Se você usar uma instrução Resume em qualquer lugar diferente de uma rotina de tratamento de erros, ocorrerá um erro.

A instrução Resume não pode ser usada em nenhum procedimento que contenha uma instrução Try...Catch...Finally.

Exemplo

Este exemplo usa a instrução Resume para encerrar o tratamento de erros em um procedimento e, em seguida, retomar a execução com a instrução que causou o erro. O erro número 55 é gerado para ilustrar o uso da instrução Resume.

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

Requisitos

Namespace: Microsoft.VisualBasic

Assembly: Biblioteca de Tempo de Execução do Visual Basic (em Microsoft.VisualBasic.dll)

Confira também