Помощ за LibreOffice 24.8
Обектът Err служи за генериране и обработка на грешки по време на изпълнение.
Err е вграден глобален обект на VBA, който позволява:
да се генерират предварително дефинираните грешки на Basic;
да се генерират потребителски изключения;
да се именува подпрограмата, предизвикала грешката;
да се описва грешката и възможните решения.
Обектът Err на VBA има следните свойства и методи:
Err.Description As String
Свойството Description описва естеството на грешката. В Description са изброени възможните причини за възникването на грешката. В идеалния случай то би трябвало да предлага няколко подхода за разрешаване на проблема и предотвратяване на повторната му поява. Негов псевдоним в Basic е функцията Error на Basic за предварително дефинираните грешки на LibreOffice.
Err.Number As Long
Кодът за грешка, съответстващ на грешката. Подразбираното свойство на обекта Err е Number. Псевдонимът в LibreOffice Basic е функцията Err.
Err.Source As String
Source указва името на подпрограмата, предизвикала грешката. Source е незадължително за дефинирани от потребителя грешки.
Err.Clear()
Нулира свойствата за описание, Erl, номер и източник на текущата грешка. Псевдонимът в LibreOffice Basic е операторът Resume.
Err.Raise(Number As Long, Optional source As String, Optional description As String)
Генерира потребителски или предварително дефинирани грешки. Псевдонимът в LibreOffice Basic е операторът Error.
Number: дефиниран от потребителя или предварително дефиниран код на грешка, който да се генерира.
Диапазонът 0 – 2000 от кодове на грешки е запазен за LibreOffice Basic. Потребителските грешки може да започват от по-високи стойности, за да се предотврати конфликт с бъдещи разширения на LibreOffice Basic.
Source: името на подпрограмата, генерираща грешката. Препоръчва се име във вида „библиотека.модул.процедура“.
Description: описание на проблема, водещ до спиране на изпълнявания процес, придружено с възможните причини за възникването му. Препоръчва се подробен списък на възможните подходи за решаване на проблема.
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:="Това е преднамерена дефинирана от потребителя грешка…"
Err.Raise(4096, "Standard.Module1.ThrowErrors", aDesc)
Exit Sub
AlertAndExecNext:
errTitle = "Грешка "& Err &" на ред "& Erl &" в "& Err.Source
MsgBox Err.Description, MB_ICONEXCLAMATION, errTitle
Resume Next
End Sub
Кратък модул на клас (ClassModule), който обвива обекта Err на VBA и може да разпространява свойства и методи на Err за стандартни модули на 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", _
"Описание на няколко реда за това дефинирано от потребителя изключение")
' място за вашия код
finally:
Exit Sub
catch:
errTitle = "Грешка "& Exc.Number &" на ред "& Erl &" в "& Exc.Source
MsgBox Exc.Description, MB_ICONSTOP, errTitle
Resume finally
End Sub
Операторът Error може да се използва като алтернатива на модул с клас, подобен на Exception, но последният предлага допълнителни възможности.