Declaração de retomada

Redefine as informações de erro e indica o que deve ser executado a seguir.

Sintaxe:

Diagrama da declaração de currículo


     Resume [ [0] | label | Next ]
   

Parâmetros:

0: Repõe as informações de erro e volta a executar a instrução que causou o erro. 0 é opcional.

label: Reinicia as informações de erro e retoma a execução no label especificado da sub-rotina atual.

Seguinte: Repõe as informações de erro e executa a instrução seguinte à que causou o erro.

As informações de erro são criadas com as funções Erl, Err e Error$.

Ícone da dica

A utilização de Resume para reiniciar as informações de erro impede a propagação da condição tratada para as rotinas de chamada.


Códigos de erro

20 Retomar sem erros

Exemplos:

As rotinas típicas de tratamento de erros consistem em: alertar o utilizador, corrigir o erro, registar informações sobre o erro ou re-lançar erros personalizados que forneçam explicações com instruções de resolução. Utilize Resume label quando forem necessários tais mecanismos.


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

Utilize Resume Next, por exemplo, ao comunicar anomalias detetadas num processo iterativo que não deve ser interrompido. Nesse caso, poderão ser necessárias 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
    
Ícone de aviso

Utilizar Resume sem parâmetros para reexecutar a instrução com erro pode ser adequado em determinadas situações. No entanto, isso pode causar um ciclo infinito.


Necessitamos da sua ajuda!

Necessitamos da sua ajuda!