Objeto Err [VBA]

Use VBA Err object to raise or handle runtime errors.

Err es un objeto global integrado de VBA que permite:

warning

Esta constante, función u objeto se activa mediante la instrucción Option VBASupport 1, colocada antes del código ejecutable del programa en un módulo.


The VBA Err object has the following properties and methods:

Propiedades

Err.Description As String

The Description property gives the nature of the error. Description details the various reasons that may be the cause of the error. Ideally, it provides the multiple course of actions to help solve the issue and prevent its reoccurrence. The Basic alias is the Error function for Collabora Office predefined errors.

Err.Number As Long

The error code associated with the error. Err object default property is Number. The Collabora Office 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étodos

Err.Clear()

Resets description, Erl, number and source properties of current error. The Collabora Office 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 Collabora Office Basic alias is the Error statement.

Parámetros

Number: A user-defined or predefined error code to be raised.

note

Error code range 0-2000 is reserved for Collabora Office Basic. User-defined errors may start from higher values in order to prevent collision with Collabora Office Basic future developments.


Source: The name of the routine raising the error. A name in the form of "myLibrary.myModule.myProc" is recommended.

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.

Ejemplo:

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

tip

A short ClassModule, that wraps VBA Err object, can distribute Err properties and methods for standard Collabora Office 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

Ejemplo

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")
    ' su código 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
note

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


¡Necesitamos su ayuda!