Instrução Resume

Redefine a informação de erro e indica o que executar em seguida.

Sintaxe:

Diagrama da instrução Resume


     Resume [ [0] | label | Next ]
   

Parâmetros:

0: Redefine a informação de erro e reexecuta a instrução que causou o erro. 0 é opcional.

label: Redefine a informação de erro e executa a instrução no endereço dado por label da rotina atual.

Next: Redefine a informação de erro e executa a instrução que segue àquela que causou o erro.

A informação de erro é feita com as funções Erl, Err e Error$.

tip

Ao utilizar Resume para redefinir a informação de erro evita a propagação das condições manipuladas para rotinas que a chamaram.


Códigos de erro:

20 Continuar sem erro

Exemplos:

As rotinas típicas de tratamento de erro são: alertar o usuário, consertar o erro, registrar informação do erro, ou relançar erros personalizados que fornecem explicações com instruções para resolver. Utilize a instrução Resume label se precisar de tais mecanismos.


      Sub Error_Handling
      try: On Error GoTo catch
          ' seu código vai aqui
          Error 91 ' exemplo de  erro
      finally:
          ' rotina de limpeza aqui
          Exit Sub
      catch:
          Print Erl, Err, Error$
          Resume finally
      End Sub ' Error_Handling
    

Utilize Resume Next, por exemplo, quando reportar anomalias encontradas num processo iterativo que não pode ser interrompido. Neste caso pode-se necessitar de várias rotinas de tratamento.


      Sub Iteration
          planets = Array("☿","♀","♁","♂","♃","♄","⛢","♆")
      try:
          On Error GoTo ReportAndProcessNext
          For ndx = -3 To 11 Step 1
              MsgBox planets(ndx)
          Next
          On Error GoTo 0 ' Stop error catching
      finally:
          Exit Sub
      ReportAndProcessNext:
          Print "Error "& Err &" at line "& Erl &" - "& Error$
          Resume Next
      End Sub ' Iteration
    
warning

Utilizar Resume sem parâmetros para reexecutar a instrução com falha pode servir em algumas situações. Entretanto pode causar iterações infinitas.


♥ Doe para nosso projeto! ♥