Interceptação de erros

Utilize a instrução On Error GoTo para intercetar erros e direcionar o fluxo do procedimento para a localização das instruções de processamento de erros num procedimento. Por exemplo, a seguinte instrução direciona o fluxo para a linha de etiqueta:

On Error GoTo ErrorHandler

Certifique-se de que dá a cada etiqueta do processador de erros num procedimento um nome exclusivo que não entrará em conflito com qualquer outro elemento no procedimento e certifique-se de que acrescenta dois pontos ao nome. No procedimento, coloque a instrução Exit Sub ou Exit Function à frente da etiqueta do processador de erros para que o procedimento não execute o código de verificação de erros se não ocorrer nenhum erro.

Sub CausesAnError() 
    ' Direct procedure flow. 
    On Error GoTo ErrorHandler 
    ' Raise division by zero error. 
    Err.Raise 11 
    Exit Sub 
 
ErrorHandler: 
    ' Display error information. 
    MsgBox "Error number " & Err.Number & ": " & Err.Description 
    ' Resume with statement following occurrence of error. 
    Resume Next 
End Sub

O método Raise do objeto Err gera o erro especificado. A propriedade Número do objeto Err devolve o número correspondente ao erro de tempo de execução mais recente; a propriedade Descrição devolve o texto da mensagem correspondente para um determinado erro.

Observação

  • Nas versões 1.x e 2.0 do Access, poderá ter utilizado a instrução Erro para gerar o erro, a função Err para devolver o número de erro e a função Erro para devolver uma descrição do erro. O código de processamento de erros existente que se baseia na instrução Error e na função Error continuará a funcionar. No entanto, é melhor utilizar o objeto Err e as respetivas propriedades e métodos ao escrever novo código.

  • As versões 1.x e 2.0 do Access devolveram apenas um erro para todos os erros de Automatização (anteriormente denominado Automatização OLE). A aplicação de componente COM que gerou o erro devolve agora as mesmas informações de erro que receberia se estivesse a trabalhar nessa aplicação. Poderá ter de reescrever o código de processamento de erros existente para lidar corretamente com novos erros de Automatização.

  • Se pretender devolver a cadeia descritiva associada a um erro de Acesso ou um erro de Objetos de Acesso a Dados (DAO), mas o erro não tiver realmente ocorrido no código, pode utilizar o método AccessError para devolver a cadeia.

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.