|
отловить ошибку runtime
|
|||
---|---|---|---|
#18+
Ганов Александр, нумеровать всё и вся не имеет смысла. Лично я довольно редко это делаю, только там где не уверен во всех случаях, на всякий, так сказать. Да и не все строки нумерую. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2019, 15:15 |
|
отловить ошибку runtime
|
|||
---|---|---|---|
#18+
Панург, принял, спасибо. мне тоже думается, что все и вся нумеровать - очень муторное занятие и лишние символы в коде ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2019, 03:28 |
|
отловить ошибку runtime
|
|||
---|---|---|---|
#18+
alecko, ну например управление отладкой у клиента кнопкой - не влезая в код. Думаю что вопрос был в #Else-щас уже и не вспомню все матюки. Во - ещё вспомнил - в режиме разработки часть полей открываем, у клиента они закрыты - это тоже делаем этой переменной (одной переменной переход в режим разработки/тестирование "клиентского вида" - переменная условной компиляции здесь никак не поможет-поля нужно все равно закрывать (полагаться на вид по умолчанию с учетом того что форма принимает тучу состояний категорически нельзя), бывает закрываю создание всяких контекстных менюшек, выскакивание предупреждающих окон, создание и печать отчетов, отсылку писем, смс во время разработки. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 16:57 |
|
отловить ошибку runtime
|
|||
---|---|---|---|
#18+
Панургместо возникновения ошибки - название модуля/класса и процедуры/функции подскажите пожалуйста как реализуете? на форуме почитал, начиная от идеи прописывать имя процедуры в обработке и заканчивая сторонними утилитами - как-то мутновато, может что-то поразумнее имеется. спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2019, 13:01 |
|
отловить ошибку runtime
|
|||
---|---|---|---|
#18+
Ганов Александрподскажите пожалуйста как реализуете? на форуме почитал, начиная от идеи прописывать имя процедуры в обработке и заканчивая сторонними утилитами - как-то мутновато, может что-то поразумнее имеется. спасибо mz-tools всё делают: и номера к строкам добавляют, и сообщение с названием процедуры и названием модуля добавляют. Я отправляю письмо, сохраняю названия формы и значения контролов, записываю в журнал, делаю скриншот - это удобно и проще, чем потом спрашивать "что вы делали 15-го августа 1993 года" у пользователя :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2019, 15:35 |
|
отловить ошибку runtime
|
|||
---|---|---|---|
#18+
NBjHCBrc6KlSObm, спасибо. полностью согласен, обработчик ошибок доработал, теперь показывает все, что нужно. Топик закрыт :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2019, 11:07 |
|
отловить ошибку runtime
|
|||
---|---|---|---|
#18+
в продолжение темы: как обычно делают когда надо поменять все обработчики во всех или отдельном модуле? понятное дело, что руками "умрешь" это делать. Озадачился данным вопросом, пошукал, вроде ничего нет нужного, потратил время - написал автозамену и/или добавление обработчика в процедуру. Вроде все как надо работает, но может есть какие-то общепризнанные и общеиспользуемые решение, где не надо ничего самому писать, так сказать plug and play? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 12:20 |
|
отловить ошибку runtime
|
|||
---|---|---|---|
#18+
NBjHCBrc6KlSObmГанов Александрподскажите пожалуйста как реализуете? на форуме почитал, начиная от идеи прописывать имя процедуры в обработке и заканчивая сторонними утилитами - как-то мутновато, может что-то поразумнее имеется. спасибо mz-tools всё делают: и номера к строкам добавляют, и сообщение с названием процедуры и названием модуля добавляют. Я отправляю письмо, сохраняю названия формы и значения контролов, записываю в журнал, делаю скриншот - это удобно и проще, чем потом спрашивать "что вы делали 15-го августа 1993 года" у пользователя :) добрый день. посмотрел как в MZTOOL все это реализовано, по сути используется объект VBA.ErrObject. При вставке в процедуру банально прописывается "ErrHeader" c Resume или с Goto и в строке информации, то есть в той строке, которая будет выведена на экран, сразу прописывается название процедуры, а для определения номера строки используется ERL. Получается совсем не универсально, то есть если название процедуры изменилось, то строка будет слать совсем не то имя. Код: vbnet 1. 2. 3. 4. 5. 6. 7.
Хотелось бы более универсальную вещь, в принципе, я все это сделал, в том числе процедуры группового обновления, добавления, удаления ErrHandler'ов, расстановку переменных по отдельным строкам, которые были написаны одной строкой, удаление не используемых переменных, удаление, добавление пустых строк в код и т.д.. В общем, такой мини-тюнинг кода через одно нажатие. Сам хэндлер описал следующим образом: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
то есть после того, как прыгаем на " хэндлер ", смотрим строку на которой стоит курсор, находим процедуру в которой она находится и т.д., подсмотрел решение здесь же на форуме. Все хорошо работает, но есть один "косяк", работает только в том случае, если открыт тот CodePane , на котором произошла ошибка, для VBE Active CodePane значит именно тот, который открыт и который в фокусе, а не тот, в котором сейчас исполняется код, если в процессе исполнения не будет открыт ни один CodePane , то же сам обработчик выдаст ошибку, т.к. не сможет обратиться к активному CodePane. Пересмотрел все известные мне свойства и методы на предмет возможности определения того CodePane или CodeModule , где в данный момент выполняется код, а не который в данный момент активен. К сожалению, пока ничего "умного" не нашел. Но в этом ветке access-спецы пишут, что пишут в лог название процедуры, место ошибки и т.д., стало быть используют либо жесткое закрепление имени процедуры в каждом обработчик (как в примере выше из MZ Tool), либо делают каким-то другим способом, до которого у меня "допетрить" не получается. Буду признателен за подсказку кто и как фактически делает фиксацию (определение названия) имени процедуры для последующей обработки, например, отправки, логирования, вывода в сообщение. Может быть мне проще проще немного переписать групповую обработку по добавлению "хэндлеров", чтобы автоматически вместо строки определения процедуры Код: vbnet 1.
прописывалась строка с закрепленным именем процедуры и в этом случае вопрос определения имени сам собой отпадет, останется только проблемка при изменении имени процедуры, в этом случае надо будет не забыть поменять имя в "хэндлере"? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 11:11 |
|
отловить ошибку runtime
|
|||
---|---|---|---|
#18+
Ганов Александркто и как фактически делает фиксацию (определение названия) имени процедуры для последующей обработки Я тоже много времени убил на поиски, но, похоже, нет такого способа. Если редактор кода не открыт, а тем более если код скомпилирован в accde, определить имя модуля и процедуры нельзя. Поэтому всегда пользуюсь MZTools для вставки имени модуля и процедуры в обработчики ошибок. Им же нумерую строки для Erl. При переименовании/копировании кода в другой модуль заменой меняю имена или перегенерирую обработчики ошибок, много времени это не отнимает. Настоятельно не рекомендую использовать русские буквы в названиях процедур, на не русских версиях офиса работать не будет с большой вероятностью. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 16:42 |
|
отловить ошибку runtime
|
|||
---|---|---|---|
#18+
MrShinНастоятельно не рекомендую использовать русские буквы в названиях процедур, на не русских версиях офиса работать не будет с большой вероятностью. Спасибо за ответ по теме вопроса и за совет - потихоньку отучаюсь :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 20:21 |
|
|
start [/forum/topic.php?fid=45&msg=39817682&tid=1610630]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 129ms |
0 / 0 |