Ajuda do LibreOffice 24.8
Utilize o objeto VBA Err para levantar ou tratar erros de execução.
Err é um objeto global integrado do VBA que permite:
levantar erros Basic predefinidos
para lançar exceções definidas pelo usuário
para nomear a rotina que originou o erro
para descrever o erro e sua possível resolução
O objeto VBA Err possui as seguintes propriedades e métodos:
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 LibreOffice.
Err.Number As Long
O código de erro associado ao erro. A propriedade padrão do objeto Err é Number. O alias no LibreOffice 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.
Err.Clear()
Redefine as propriedades Description, Erl, Number e Source do erro atual. O alias do LibreOffice 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 LibreOffice Basic é a instrução Error.
Number: o código do erro definido pelo usuário ou predefinido a ser levantado.
O intervalo de códigos de erro de 0 a 200 é reservado para o LibreOffice Basic. Erros definidos pelo usuário podem começar com valores maiores para prevenir colisões com os desenvolvimentos futuros do LibreOffice 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.
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
Um ClassModule curto, que envolve o objeto VBA Err, pode distribuir as propriedades e métodos Err para módulos padrão do LibreOffice 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
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
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.