Contingut

# Objecte Err [VBA]

Use VBA Err object to raise or handle runtime errors.

Err és un objecte global integrat del VBA que permet:

- to raise predefined Basic errors

- to throw user-defined exceptions

- donar nom a la rutina que origina l'error

- descriure l'error i les possibles solucions

Aquesta constant, funció o objecte s'activa mitjançant l'expressió Option VBASupport 1, col·locada abans del codi executable del programa en un mòdul.

The VBA Err object has the following properties and methods:

## Propietats

             Err.Description As String

La propietat Descripció dóna la naturalesa de l'error. Descripció detalla les diverses raons que poden ser la causa de l'error. Idealment proporciona el curs múltiple d'accions per ajudar a resoldre el problema i evitar la seva reaparició. L'àlies bàsic és la funció Error per a errors predefinits de %{PRODUCTNAME}.

             Err.Number As Long

The error code associated with the error. Err object default property is Number. The LibreOffice Basic alias is the Err function.

             Err.Source As String

Source indicates the name of the routine that produces the error. Source is an option for user-defined errors.

## Mètodes

             Err.Clear()

Resets description, Erl, number and source properties of current error. The LibreOffice Basic alias is the Resume statement.

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

Throws user-defined errors or predefined errors. The LibreOffice Basic alias is the Error statement.

### Paràmetres

Nombre Un codi d'error definit per l'usuari o predefinit a pujar.

Error l'interval de codi 0-2000 està reservat per a un percentatge de LibreOffice Basic. Els errors definits per l'usuari poden començar des de valors més alts per tal d'evitar la col·lisió amb el desenvolupament futur del LibreOffice Basic.

Source El nom de la rutina que aixeca l'error. Es recomana un nom en forma de «myLibrary.myModule.myProc».

Description: A description of the problem leading to stop the running process, accompanied with the various reasons that may cause it. A detailed list of the possible course of actions that may help solve the problem is recommended.

### Exemple:

             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:="This is an intended user-defined error …"
                 Err.Raise(4096, "Standard.Module1.ThrowErrors", aDesc)
                 Exit Sub
             AlertAndExecNext:
                 errTitle = "Error "& Err &" at line "& Erl &" in "& Err.Source
                 MsgBox Err.Description, MB_ICONEXCLAMATION, errTitle
                 Resume Next
             End Sub

## Exception ClassModule

A short ClassModule, that wraps VBA Err object, can distribute Err properties and methods for standard LibreOffice Basic modules.

             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

## Exemple

             Function Exc As Object
                 Exc = New Exception
             End Function

             Sub aRoutine
             try:
                 On Local Error GoTo catch:
                 Exc.Raise(4096, "myLib.myModule.aRoutine", _
                     "Any multi-line description for this user-defined exception")
                 ' el vostre codi va aquí…
             finally:
                 Exit Sub
             catch:
                 errTitle = "Error "& Exc.Number &" at line "& Erl &" in "& Exc.Source
                 MsgBox Exc.Description, MB_ICONSTOP, errTitle
                 Resume finally
             End Sub

The Error statement or an Exception-like class module can be used interchangeably, while the latter adds extra features.

Temes relacionats

Funcions d'error

Opció ClassModule expressió

Opció VBASupport Expressió

Servei ScriptForge.Exception

Ens cal la vostra ajuda!