Ajuda do Collabora Office 24.04
Redefine a informação de erro e indica o que executar em seguida.
Resume [ [0] | label | Next ]
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$.
Erl: Número da linha do módulo onde o erro ocorreu.
Err: Número do erro.
Error[$]: Descrição do erro.
Ao utilizar Resume para redefinir a informação de erro evita a propagação das condições manipuladas para rotinas que a chamaram.
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
Utilizar Resume sem parâmetros para reexecutar a instrução com falha pode servir em algumas situações. Entretanto pode causar iterações infinitas.