Option Public
Option Declare
%REM
<information>
<description>
Библиотека для обработки ошибок в скриптах
</description>
<input params>
...
</input params>
<output params>
...
</output params>
<result>
...
</result>
<others>
Пример вызова ProcessError:
Call ProcessError (LIB_NAME, Err, Error, Erl, Lsi_info (2), Lsi_info (12))
</others>
</information>
%END REM
Private Const MODULE_NAME = "Библиотека <libError>"
Function ProcessError (moduleName As String, errNum As Variant, errDescr As Variant, _
errLine As Integer, errorPlace As String, callBy As String)
%REM
<information>
<description>
Функция обрабатывает ошибку
</description>
<input params>
moduleName - имя модуля, в котором произошла ошибка
errNum - номер ошибки
errDescr - описание ошибки
errLine - строка, в которой произошла ошибка
errorPlace - имя функции, в которой возникла ошибка
callBy - имя функции, которая вызвала, функцию, в которой возникла ошибка
</input params>
<output params>
...
</output params>
<result>
True - процесс обработки ошибки завершен удачно
False - во время обработки ошибки возникли ошибки
</result>
<others>
...
</others>
</information>
%END REM
On Error Goto errorHandler
Dim session As New NotesSession
Dim db As NotesDatabase
Dim logA As cscLOG
Print moduleName , errorPlace & " called by " & callBy , "ошибка № " & errNum & ": " & errDescr & " (line: " & Cstr (errLine) & ")"
Msgbox moduleName & "." & Chr (13) & _
"Функция " & errorPlace & " called by " & callBy & "." & Chr (13) &_
"Ошибка № " & errNum & ": " & errDescr & " (line: " & Cstr (errLine) & ").", 16, "Ошибка"
Set db = session.CurrentDatabase
Set logA = New cscLOG
Call logA.AppendText (LOG_ITEM_TYPE_ERROR, LOG_ACTION_TYPE_ERROR, "бд: " & db.Title & " (Сервер = " & db.Server & ", путь = " & db.FilePath & "), модуль: " & moduleName & ", " & errorPlace & " called by " & callBy & ". Ошибка № " & errNum & ": " & errDescr & " (line: " & Cstr (errLine) & ")")
ex:
Exit Function
errorHandler:
Print MODULE_NAME , Lsi_info (2) & " called by " & Lsi_info (12) , "ошибка № " & Err & ": " & Error$ & " (line: " & Cstr (Erl) & ")"
Msgbox "Библиотека " & MODULE_NAME & "." & Chr (13) & _
"Функция " & Lsi_info (2) & " called by " & Lsi_info (12) & "." & Chr (13) &_
"Ошибка № " & Cstr (Err) & ": " & Error$ & " (line: " & Cstr (Erl) & ").", 16, "Ошибка"
Resume ex
End Function