|
Отключенная библиотека
|
|||
---|---|---|---|
#18+
Всех с НГ !) Делаю разработку которая зависит от внешних библиотек. Вопрос - как правильно продиагностировать наличие внешних зависимостей, выдать верное сообщение и отключить зависимые функции ? Какие верные практики ? З.ы.очень сильно не хочется напрягать пользователя тонной диагностических ошибок , а врубать "on error next" imho моветон ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2016, 14:19 |
|
Отключенная библиотека
|
|||
---|---|---|---|
#18+
essbase.ruврубать "on error next" imho моветонПочему? Перехват ошибок выполнения - документированная возможность языка. И в других языках высокого уровня она существует. Например, при работе с Collection без перехвата ошибок делать нечего. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2016, 18:08 |
|
Отключенная библиотека
|
|||
---|---|---|---|
#18+
Я понимаю откуда растут ноги про моветон. Как-то натыкался я на статейку, где красочно описывалось, что всякие On Error - это от лукавого И что использовать их в кодах зло великое есть. Правда, обоснование жиденькое какое-то было, из чего сделал вывод, что статья написана была не практиком-программистом. Видимо, статью эту не один я видел или подобная статья не единственная. Мое мнение: скорее надо подходить к обработке ошибок без фанатизма и если есть возможность обойтись без On Error и при этом код будет не менее оптимальным - то надо обходится без них. Но когда исключение On Error повлечет за собой утяжеление кода, жертвование его читаемости и скорости - какой в нем смысл? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2016, 18:19 |
|
Отключенная библиотека
|
|||
---|---|---|---|
#18+
авторпродиагностировать наличие внешних зависимостей Я так думаю, Вам потребуется позднее связывание. Если для Вас это ново, то почитайте о нём. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2016, 19:46 |
|
Отключенная библиотека
|
|||
---|---|---|---|
#18+
Решил проблему тем что разделил проект на две кучки - для избранных,и для всех остальных http://essbase.ru/sql-spyder-excel-ribbon з.ы. Я уважаю On Error GoTo ErrorHandler и избегаю On Error Resume Next ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2016, 21:20 |
|
Отключенная библиотека
|
|||
---|---|---|---|
#18+
essbase.ruизбегаю On Error Resume NextДело это личное. Но я не вижу причин избегать. Такой прием, как уже заметил Казанский, применяется и в более высоких языках программирования. И они явно не являются неким атавизмом - они есть в сравнительно новом и модном C#. Значит смысла они не лишены и вряд ли имеет смысл от них отказываться с упорством маньяка При этом On Error GoTo ErrorHandler мало чем отличается от On Error Resume Next. Просто во втором случае VB сам назначает метку перехода, виртуально устанавливая её после строки с ошибкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2016, 22:32 |
|
Отключенная библиотека
|
|||
---|---|---|---|
#18+
The_Prist,On Error GoTo ErrorHandler это способ. А resume next это костыль. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2016, 18:31 |
|
Отключенная библиотека
|
|||
---|---|---|---|
#18+
essbase.ru, Евгений, а саму надстройку приложите? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2016, 19:04 |
|
Отключенная библиотека
|
|||
---|---|---|---|
#18+
BobgosOn Error GoTo ErrorHandler это способ. А resume next это костыльа можно поподробнее про это? Чем принципиально отличается GoTo от Resume Next да так, что одно Вы считаете правильным использовать, а другое нет? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2016, 16:51 |
|
Отключенная библиотека
|
|||
---|---|---|---|
#18+
The_Pristем принципиально отличается GoTo от Resume Next хоть ворпрос адрессовался не мне , но все же http://perfect-excel.ru/publ/excel/makrosy_i_programmy_vba/obrabotka_oshibok_v_kode_vba/7-1-0-98 от себя могу добавить , что On Error Resume Next я использую обычно в функциях которые возвращают статус объектов например Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2016, 14:58 |
|
Отключенная библиотека
|
|||
---|---|---|---|
#18+
essbase.ru, это не ответ на мой вопрос, это я знаю. Bobgos написал: BobgosOn Error GoTo ErrorHandler это способ. А resume next это костыль Вот мне и интересно, почему один оператор он считает правильным, а второй - костылем. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2016, 15:06 |
|
Отключенная библиотека
|
|||
---|---|---|---|
#18+
The_Prist, Resume next для меня означает отсутствие обработки ошибки. Согласен с единственным корректным использованием - получить статус объекта. И то только для того чтобы сократить код на одну строчку. Goto означает, что предусмотрен обработчик, т.е. код более универсален. Качество обработчика может быть разным, но даже msgbox с кодом ошибки и именем функции и входными данными позволит диагностировать проблему. А резюме некст только скроет её. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2016, 17:48 |
|
Отключенная библиотека
|
|||
---|---|---|---|
#18+
BobgosResume next для меня означает отсутствие обработки ошибкиНу так бы и написали - для Вас лично. Если Вам лично не подходит - это же не значит, что это костыль для всех С таким подходом можно что угодно под костыль подписать. Поэтому я ранее и написал: The_Pristскорее надо подходить к обработке ошибок без фанатизма и если есть возможность обойтись без On Error и при этом код будет не менее оптимальным - то надо обходится без них Я вот применяю Resume, но не для сокрытия ошибок, а для выявления или в тех местах, где они заведомо обязательно появятся, но мне не надо их обрабатывать визуально(передавая в глобальный обработчик и прочее), а требуется лишь отследить и продолжить код в зависимости от свойств объекта Err. Потом я естественно, устанавливаю обратно глобальный обработчик ошибок(если это будет необходимо). Есть масса применений всех типов On Error в кодах - главное понимать что делаешь, а не применять наобум. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2016, 20:56 |
|
Отключенная библиотека
|
|||
---|---|---|---|
#18+
The_Prist, Вобщем- все мы об одном и том же. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2016, 22:58 |
|
|
start [/forum/topic.php?fid=61&fpage=39&tid=2173225]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 288ms |
total: | 417ms |
0 / 0 |