Objeto Err [VBA]

Utilize o objeto VBA Err para levantar ou tratar erros de execução.

Err é um objeto global integrado do VBA que permite:

warning

Esta constante, função ou objeto se ativa com a instrução Option VBASupport 1 colocada antes do código executável do programa em um módulo.


O objeto VBA Err possui as seguintes propriedades e métodos:

Propriedades

Err.Description As String

A propriedade Description fornece a natureza do erro. Description detalha as várias razões que podem ser a causa do erro. Idealmente fornece várias possibilidades de ações para resolver o problema e prevenir novas ocorrências. Seu alias é a função Basic Error para erros predefinidos do Collabora Office.

Err.Number As Long

O código de erro associado ao erro. A propriedade padrão do objeto Err é Number. O alias no Collabora Office Basic é a função Err.

Err.Source As String

Source indica o nome da rotina que produziu o erro. Source é opcional para erros definidos pelo usuário.

Métodos

Err.Clear()

Redefine as propriedades Description, Erl, Number e Source do erro atual. O alias do Collabora Office Basic é a instrução Resume.

Err.Raise(Number As Long, Optional source As String, Optional description As String)

Lança erros definidos pelo usuário ou erros predefinidos. O alias no Collabora Office Basic é a instrução Error.

Parâmetros

Number: o código do erro definido pelo usuário ou predefinido a ser levantado.

note

O intervalo de códigos de erro de 0 a 200 é reservado para o Collabora Office Basic. Erros definidos pelo usuário podem começar com valores maiores para prevenir colisões com os desenvolvimentos futuros do Collabora Office Basic.


Source: O nome da rotina que levantou o erro. Recomenda-se um nome na forma "minhaBib.meuModulo.minhaProc".

Description: Uma descrição do problema que levou à parada do processo em execução, acompanhado dos vários motivos que podem o ter causado. Recomenda-se uma lista detalhada das possíveis soluções para ajudar a resolver o problema.

Exemplo:

Option VBASupport 1

Sub ThrowErrors
    Dim aDesc As String : aDesc = Space(80)
    On Local Error GoTo AlertAndExecNext
    Err.Raise(91, "ThrowErrors", Error(91))
    Err.Raise 2020, Description:="Este é um erro definido pelo usuário intencional …"
    Err.Raise(4096, "Standard.Module1.ThrowErrors", aDesc)
    Exit Sub
AlertAndExecNext:
    errTitle = "Erro "& Err &" na linha "& Erl &" em "& Err.Source
    MsgBox Err.Description, MB_ICONEXCLAMATION, errTitle
    Resume Next
End Sub

Exceção ClassModule

tip

Um ClassModule curto, que envolve o objeto VBA Err, pode distribuir as propriedades e métodos Err para módulos padrão do Collabora Office Basic.


Option ClassModule
Option VBASupport 1

Public Property Get Description As String
    Description = Err.Description
End Property
Public Property Get Number As Long
    Number = Err.Number
End Property
Public Property Get Source As String
    Source = Err.Source
End Property
Public Sub Clear
    Err.Clear
End Sub
Public Sub Raise( number As Long, Optional Source As String, Optional Description As String)
    Err.Raise number, Source, Description
End Sub

Exemplo

Function Exc As Object
    Exc = New Exception
End Function

Sub aRoutine
try:
    On Local Error GoTo catch:
    Exc.Raise(4096, "myLib.myModule.aRoutine", _
        "Uma descrição com várias linhas para esta exceção definida pelo usuário"
    ' seu código vai aqui
finally:
    Exit Sub
catch:
    errTitle = "Erro "& Exc.Number &" na linha "& Erl &" em "& Exc.Source
    MsgBox Exc.Description, MB_ICONSTOP, errTitle
    Resume finally
End Sub
note

A instrução Error ou um módulo de classe tipo Exception podem ser utilizados de forma intercambiada, enquanto que o último tem características extras.


♥ Doe para nosso projeto! ♥