A
Akupaka
ой, 7-ка это виндаДумаю, это не от версии клиента зависит

на клиенте нормальные! а на сервере код!если код выполняется на сервере, то Lsi_info(3) и Lsi_info(13) возвращает нормальное читаемое значение..
ой, 7-ка это виндаДумаю, это не от версии клиента зависит
на клиенте нормальные! а на сервере код!если код выполняется на сервере, то Lsi_info(3) и Lsi_info(13) возвращает нормальное читаемое значение..
вот и я не знаю, как в клиенте это делаеца. когда-то пытался решать эту задачу, пошарил ibm-ский форум, ничего внятного не нашел, забил. поэтому и указал, что module_name передаю обработчику явно.как в клиенте узнать имя модуля с помощью функций Getthreadinfo или Lsi_info — буду премного благодарен (и, видимо, не я один).
GetThreadInfo(LSI_THREAD_CALLMODULE) — Get the name of the calling module. Это должно (теоретически) возвращать имя модуля, откуда был произведён вызов текущей процедуры/функции. Применительно к функции-обработчику ошибок — имя модуля, в котором возникла ошибка. Если бы ещё возвращалось действительно имя модуля, а не абра-кадабраLsi_info в одном из параметров возвращает (14?), но на сервере (раньше, щас не знаю) возвращалось не корректное имя либы, а какой-то код.
А "он есть - но всегда" означает, что значение имени модуля необходимо передавать из места вызова обработчика, т.к. в самой процедуре обработчика можно получить лишь имя модуля, в котором именно она находится, а не там где произошла ошибка.
В каком клиенте? У меня 8-ка возвращает абра-кадабру.на клиенте нормальные! а на сервере код!
ой, 7-ка это винда![]()
Это у Вас точно шо-то с компиютиром )))на клиенте нормальные! а на сервере код!
Беру свои слова обратнона клиенте нормальные! а на сервере код!
... у меня желание обсудить способы обработки ошибок, а желание порисоваца у кого то другого (молчу...)сначала человек спрашивает, как получить первые три символа в строке:, а потом вставляет пример кода. код явно чужой, копирайтов нет, вопщем неаккуратненько как-то. желание порисоваца понятно, но надо же совесть иметь...
P.S. Про ctrl+c - спасибо, не знал. Как говорица, "о сколько нам открытий чудных..."
Вы по делу ответьте. Код привели - будьте готовы ответить на вопросы. Вопросы задал тут:... у меня желание обсудить способы обработки ошибок, а желание порисоваца у кого то другого (молчу...)
п.с. как получить первые три символа в строке... "о сколько нам открытий чудных..." (с) не я
Sub Initialize
On Error GoTo ErrorMsg
<.................................................................>
Exit Sub
ErrorMsg:
'Тута отправляю админам приложения диагностическое письмишко
Exit Sub
End Sub
Sub Initialize
On Error GoTo ErrorMsg
<.................................................................>
On Error 666 Resume Next
<строка 666>
if Err = 666 Then
'Тута отправляю админам приложения диагностическое письмишко 666
End If
On Error GoTo ErrorMsg
<.................................................................>
Exit Sub
ErrorMsg:
'Тута отправляю админам приложения диагностическое письмишко
Exit Sub
End Sub
Sub Initialize
On Error GoTo ErrorMsg
<.................................................................>
<строка 666>
<.................................................................>
Exit Sub
ErrorMsg:
'Тута отправляю админам приложения диагностическое письмишко
if Err = 666 Then Resume Next
Exit Sub
End Sub
Sub Initialize
On Error GoTo ErrorMsg
<.................................................................>
Exit Sub
ErrorMsg:
'Тута отправляю админам приложения диагностическое письмишко
if Err= 666 and Erl = 666 then
'Тута отправляю админам приложения диагностическое письмишко 666
err = 0
Resume Next
else
'Тута отправляю админам приложения диагностическое письмишко и вываливаю абшибку
msgbox "Alert"
end if
Exit Sub
End Sub
не, на самом деле Erl то как раз лучше и не юзать ( если только на 100% уверенны что код никогда не будет меняться )О, а про Erl я как-то и не подумал. Спасибо!
Правда тут главное не забыть про это Erl, когда буду править код и номер строки измениться...
Обычно использую такую конструкциюМожно было бы проще:
...
Sub Initialize
On Error GoTo ErrorMsg
'...
ExitSub:
Exit Sub
ErrorMsg:
'...
Resume ExitSub
End Sub
Можно и так извратиться:Если ошибка может вылезть только в одном месте, то Ваш вариант -- это да, а если в нескольких, но пропустить надо только в одном, то, по-видимому, нет...
Sub Initialize
On Error GoTo ErrorMsg
<.................................................................>
On Error 666 GoTo Error666
<строка 666>
On Error GoTo ErrorMsg
<.................................................................>
ExitSub:
Exit Sub
Error666:
'Тута отправляю админам приложения диагностическое письмишко
On Error GoTo ErrorMsg 'для переключения обработчика на других строках
Resume Next
ErrorMsg:
'Тута отправляю админам приложения диагностическое письмишко
Resume ExitSub
End Sub
так может это "одно" место вынести в "одно" местоэто да, а если в нескольких, но пропустить надо только в одном
на сколько я знаю - нет, не сброситьсяКак я понимаю, при выходе из процедуры
Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab