|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
MrShin.... который не разбирается в Акцессе и не полезет в отладчик.... А вот информация,которая выведется в окне(как на Вашем скрине)ему о многом скажет и он запросто восстановит работу программы ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 16:30 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
sdkuА вот информация,которая выведется в окне(как на Вашем скрине)ему о многом скажет и он запросто восстановит работу программы Нет, обычно просто присылается разработчику в виде скриншота, ему это много что скажет. Если обработка ошибок написана правильно, то работа всего приложения нарушается очень редко и можно продолжать тестирование ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 16:35 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
MrShinЧестно говоря, не ожидал от Вас такого ответа :) Просто есть разные подходы, у меня такой: 1. Общий алгоритм (ТЗ) если он ущербен, обработчик ошибок не имеет смысла. 2. Рабочий алгоритм - это способ реализации Общего алгоритма (ТЗ), как правило имеет модульную структуру, каждый модуль многократно тестируется в автономном режиме до момента его устойчивого рабочего состояния, многие из них берутся уже в готовом, отлаженном виде, например отсюда. После этого достаточно по одному обработчику на модуль на форс мажор для ... sdkuРазве что непредвиденные ошибки 3. Ну и отделяем мух от котлет - отлаженный алгоритм требует на вход корректных данных, это называется контролем входных данных, который никакого отношения к обработке ошибок общего алгоритма не имеет... Как раз те кто игнорируют качество пунктов 2 и 3 попадают на грабли: не рабочий алгоритм + отсутствие контроля входных данных... sdkuпередавать такую программу заказчику НЕЛЬЗЯ ! Это ставить на себе крест... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 16:41 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
тестирование проводится до передачи продукта клиентам (если передать до тестирования-навряд ли к Вам повторно обратятся) Конечно для ACCESS все попроще будет,но основные положения надо блюсти ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 16:46 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
Я абсолютно согласен, что конечный пользователь не должен видеть сообщений с технической информацией, это огромный минус и катастрофа, поэтому основное предназначение - этап тестирования и корректное завершение работы при системных сбоях. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 16:57 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
В конце концов приходим к этому:(написано вчера в 12.35) sdkuСтесняюсь спросить:а зачем? Если ошибка в коде то это не код Если ошибка возникает в результате действий пользователя то код и пишется для того чтоб этого избежать (часто "защита от дурака" занимает намного больший объем чем "полезный" код) обработчик ошибок обязан присутствовать в сколь-нибудь "серьезном" коде. Единственное-отключение питания. В зависимости от важности информации применяют ИБП ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2019, 17:07 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
sdkuВ конце концов приходим к этому Основной причины нет - тестирования. Любое последующее изменение может приводить к неожиданным ошибкам, которые тоже нужно выловить и исправить. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2019, 08:27 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
MrShinsdkuВ конце концов приходим к этому Основной причины нет - тестирования.+1 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2019, 08:54 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
ROIcourtНо, реально, в ВБА, сделать такое "по-простому" не получится. Разве что, писать какой-то парсер модулей, который будет "бегать" по процедурам, нумеровать строки, определять наименование подпрограммы и прописывать блок обработки ошибок Опять повторюсь --Зачем такие извращения!? Alecko вам даже ссылку дал (изучайте) Что доктор прописал.смешной ты, алвк :) дык, по той ссылке, именно то, что я выше и "расписал", с точностью до имён процедур :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2019, 08:59 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
courtROIпропущено... Опять повторюсь --Зачем такие извращения!? Alecko вам даже ссылку дал (изучайте) Что доктор прописал.смешной ты, алвк :) дык, по той ссылке, именно то, что я выше и "расписал", с точностью до имён процедур :)) Смешной ты (я про нумерацию строк) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2019, 10:12 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
court, что-то не слышал про стандартную процедуру "GlobalErrHandle" - в аксе по F1 в справке нет ничего, здесь тоже , и эта процедура как понимаю лишь разделяет режимы отладки да работы. mrShin ещё раз привел свои наработки.пока не попробуешь их думаешь куда столько кода, а в реальности там именно так как и пишет vmag - одна процедура на модуль, да и то не на каждый. в обычных процедурах пара строк. я запоминаю имя процедуры путем присвоения её имени public переменной (в которой процедуре ошибка произошла - та и осталась в этой переменной) - не очень удобно, однако в этом случае остальной модуль обработки становится неизменяемым, использую обычный текстовый редактор (не mztoolz), с которого копирую все в новый модуль. лишь меняю название процедуры. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
переменную в которой сохранено имя процедуры можно и не вытаскивать далеко а сделать типа M1StakeAmmounce & chr(32) & MistakeFunction ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2019, 11:19 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
aleckocourt, что-то не слышал про стандартную процедуру "GlobalErrHandle" дык, она никакая и ни стандартная :) Это была "иллюстрация идеи" :) Собственно эта функция то, что в коде MrShin представляет собой функция LogError ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2019, 11:26 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
MrShin, Да, хорошее тестирование - залог успеха... Стоит только временно заремить строку On Error GoTo в проблемной процедуре, тут же получишь строку на которой споткнулся алгоритм... Большие и сложные модули для удобства можно разбивать на условные этапы и ловить ошибки по этапно: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2019, 11:58 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
Ребята,а Вам не кажется,что топик перерос в обсуждение способов отладки (тестирования), и не зависимо от того как (существует "мильон" вариантов:кто как считает нужным и как может-топика явно не хватит для рассмотрения всех способов), хочется подчеркнуть что этот этап крайне важен и безусловно обязателен ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2019, 14:06 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
aleckoне нужно комментировать debug.assert как в способе от MrShin _ достаточно поставить эту переменную в false Так и в случае с Debug.Assert тоже ничего комментировать не надо, достаточно любую из переменных STOP_AT_ERROR или IS_DEV поставить в False. Я хоть и пишу, что эти отладочные строки нужно удалить в релизе, реально никогда этого не делаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2019, 17:06 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
vmagСтоит только временно заремить строку On Error GoTo в проблемной процедуре, тут же получишь строку на которой споткнулся алгоритм Это работает, если тестируешь сам. Для отдельного тестера это не вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2019, 17:09 |
|
Как узнать имя sub
|
|||
---|---|---|---|
#18+
MrShinЭто работает, если тестируешь сам. Из лично моей практики, утвердилось правило: хочешь сделать хорошо - сделай сам... Особенно это правило работает в разрезе проектов Access, я так думаю процентов 99 готовых проектов в этой области делали одиночки, ну мне так кажется... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2019, 17:38 |
|
|
start [/forum/topic.php?fid=45&gotonew=1&tid=1610535]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
12ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 285ms |
total: | 438ms |
0 / 0 |