Objekt Err [VBA]

Objekt VBA Err se používá k vyvolávání nebo zpracovávání chyb při běhu.

Err je vestavěný globální objekt VBA, který umožňuje:

warning

Tato konstanta, funkce nebo objekt se povoluje příkazem Option VBASupport 1, který je umístěn v modulu před spustitelným programem.


Objekt VBA Err má následující vlastnosti a metody:

Vlastnosti

Err.Description As String

Vlastnost Description udává charakter chyby. Obsahuje podrobnosti o příčinách, které mohly chyby způsobit. V ideálním případě nabízí kroky, které problém vyřeší a zabrání jeho zopakování. V jazyce Basic je jejím aliasem pro předem definované chyby Collabora Office funkce Error.

Err.Number As Long

Výchozí vlastností objektu Err je Number. Jedná se o kód odpovídající chybě. V jazyce Collabora Office Basic je jejím aliasem funkce Err.

Err.Source As String

Source označuje název programu, v němž chyba vznikla. Source je možné určit u chyb definovaných uživatelem.

Metody

Err.Clear()

Vymaže u aktuální chyby vlastnosti Description, Erl, Number a Source. V jazyce Collabora Office Basic je jejím aliasem příkaz Resume.

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

Vyvolá uživatelem definovanou nebo předem definovanou chybu. V jazyce Collabora Office Basic je jejím aliasem příkaz Error.

Parametry

Number: Uživatelem definovaný nebo předem definovaný kód chyby, která se má vyvolat.

note

Rozsah chybových kódů 0–2000 je vyhrazen pro Collabora Office Basic. Aby se zabránilo konfliktu během budoucího vývoje jazyka, mohou mít uživatelem definované chyby pouze větší hodnoty.


Source: Název programu, v němž byla chyba vyvolána. Doporučuje se název ve tvaru "mojeKnihovna.mujModul.mojeProcedura".

Description: Popis problému, který vedl k zastavení běžícího procesu, spolu s možnými příčinami. Doporučuje se připojit seznam kroků, které mohou problém vyřešit.

Příklad:

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:="Toto je záměrná uživatelem definovaná chyba…"
    Err.Raise(4096, "Standard.Module1.ThrowErrors", aDesc)
    Exit Sub
AlertAndExecNext:
    errTitle = "Chyba "& Err &" na řádku "& Erl &" v "& Err.Source
    MsgBox Err.Description, MB_ICONEXCLAMATION, errTitle
    Resume Next
End Sub

ClassModule Exception

tip

Jednoduchý ClassModule, který obaluje objekt VBA Err a který může být použit pro přístup k vlastnostem a metodám objektu Err ze standardních modulů jazyka 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

Příklad

Function Exc As Object
    Exc = New Exception
End Function

Sub aRoutine
try:
    On Local Error GoTo catch:
    Exc.Raise(4096, "myLib.myModule.aRoutine", _
        "Jakýkoliv několikařádkový popis této uživatelem definované výjimky")
    ' místo pro vlastní kód
finally:
    Exit Sub
catch:
    errTitle = "Chyba "& Exc.Number &" na řádku "& Erl &" v "& Exc.Source
    MsgBox Exc.Description, MB_ICONSTOP, errTitle
    Resume finally
End Sub
note

Příkaz Error a modul třídy jako Exception mohou být vzájemně zaměňovány kromě případů, kdy modul přidává vlastnosti navíc.


Podpořte nás!