Domino Designer 8.x И Номер Строки С Ошибкой (erl)

savl

Lotus team
28.10.2011
2 136
105
#1
Ситуация:
ЗАметил, что если пишешь свой класс, то номер строки в ошибке возвращается не совсем верно: выше чем идет ошибка, пытался считать но толком не разбирался, смирился. Сейчас проблема стала острой и решил разобраться до конца.
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">С IBM поддержки</div></div><div class="sp-body"><div class="sp-content">
Problem
You have created a class in your script library which throws an error. However ERL() misreports the line number.
For example: A script library has the error occur on line 17 of a custom class and line 30 in the all code view. However ERL() reports it happening on line 20.

Resolving the problem
In previous versions of Domino Designer LotusScript classes were stored in the "Declarations" section of the script library. The ERL() number reported was relative to this section.
In Domino Designer 8.5.1 the classes are still stored in this location, but visually have their own sections in the outline view of the Designer client.
To determine the correct ERL() number you can do the following.
1. Go to the "Options" view of the script library. Determine the number of lines there.
2. Go to the "Full code" view (top of the outline). The correct line the error occurred on is the value of ERL() + the size of the Options section.
Источник
От себя добавляю, что надо к ERL прибавлять не только количество строк в (Options), но и строки из (Declarations).
Заходим в каждую из "областей библиотеки" считаем все строки, (комментарии, заполненные и пустые), в каждой области суммируем и прибавляем к ERL, вот и строка с ошибкой.
Помогло очень включение опции "Отображать номера строк", так видно все пустые строки в конце блока. (картинка во вложении)
Пример:
Log:Sub "dbLog.init" в строке: 68
в (Options) - 3 строки
в (Declarations) - 4 заполненных, 1 пустая, итого 5 строк.
Конечная строка будет: 68+3+5=76

Данный момент касается только самопальных классов из (Declarations).
 

Вложения

savl

Lotus team
28.10.2011
2 136
105
#3
а использование Navigate/Goto Err linе?
Тут интереснее, в 8.x внутри класса идет своя нумерация, а erl возвращает номер относительно всей библиотеки, поэтому меня это в ступор и вводило.
Да и сам Goto Erl line говорит нам.
Для перехода по библиотеке использую Ctrl + L
 

Вложения

Kee_Keekkenen

Well-known member
05.09.2006
639
4
#4
что касается нумерации, то да, видимо к выдаваемому номеру строки следует прибавить количество строк в опшионс секции, тогда полученное значение будет номер строки, где произошла ошибка, если смотреть на код, который открывается, когда кликаешь на имени библиотеки..

однако это геморр - что-то считать..

забей на это, чтобы перейти к строке с ошибкой нужно в навигаторе (там, где открыта библиотека - опшионс, декларейшнс, прочие события библиотеки, функции, классы) выбрать любой класс или метод любого класса и вызвать диалог по Ctrl + Alt + L и вводишь номер строки с ошибкой, что выдал лотус и корректно перехоишь к строке с ошибкой..
 

VladSh

начинающий
Lotus team
11.12.2009
1 262
6
#5
Сабж известен с момента выхода 8-ки; за выяснение реального номера строки спасибо, хотя уже привык работать без номеров строк, иногда проще в отладчике прогнать.
Они, эти *хорошие люди*, думаю, исправлять это не собираются. Интересно, как обстоит дело под 9-кой..
 

savl

Lotus team
28.10.2011
2 136
105
#6
VladSh
Есть информация от Imike, что в 9-ке точно такая же шняга =)