Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Отключенная библиотека / 17 сообщений из 17, страница 1 из 1
03.01.2016, 14:19
    #39141582
essbase.ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отключенная библиотека
Всех с НГ !)

Делаю разработку которая зависит от внешних библиотек.
Вопрос - как правильно продиагностировать наличие внешних зависимостей, выдать верное сообщение и отключить зависимые функции ?


Какие верные практики ?

З.ы.очень сильно не хочется напрягать пользователя тонной диагностических ошибок , а врубать "on error next" imho моветон
...
Рейтинг: 0 / 0
03.01.2016, 18:08
    #39141636
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отключенная библиотека
essbase.ruврубать "on error next" imho моветонПочему? Перехват ошибок выполнения - документированная возможность языка. И в других языках высокого уровня она существует.
Например, при работе с Collection без перехвата ошибок делать нечего.
...
Рейтинг: 0 / 0
03.01.2016, 18:19
    #39141640
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отключенная библиотека
Я понимаю откуда растут ноги про моветон. Как-то натыкался я на статейку, где красочно описывалось, что всякие On Error - это от лукавого И что использовать их в кодах зло великое есть. Правда, обоснование жиденькое какое-то было, из чего сделал вывод, что статья написана была не практиком-программистом. Видимо, статью эту не один я видел или подобная статья не единственная.
Мое мнение: скорее надо подходить к обработке ошибок без фанатизма и если есть возможность обойтись без On Error и при этом код будет не менее оптимальным - то надо обходится без них. Но когда исключение On Error повлечет за собой утяжеление кода, жертвование его читаемости и скорости - какой в нем смысл?
...
Рейтинг: 0 / 0
03.01.2016, 19:46
    #39141663
Дмит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отключенная библиотека
авторпродиагностировать наличие внешних зависимостей
Я так думаю, Вам потребуется позднее связывание. Если для Вас это ново, то почитайте о нём.
...
Рейтинг: 0 / 0
03.01.2016, 21:20
    #39141710
essbase.ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отключенная библиотека
Решил проблему тем что разделил проект на две кучки - для избранных,и для всех остальных
http://essbase.ru/sql-spyder-excel-ribbon

з.ы. Я уважаю On Error GoTo ErrorHandler и избегаю On Error Resume Next
...
Рейтинг: 0 / 0
03.01.2016, 22:32
    #39141750
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отключенная библиотека
essbase.ruизбегаю On Error Resume NextДело это личное. Но я не вижу причин избегать. Такой прием, как уже заметил Казанский, применяется и в более высоких языках программирования. И они явно не являются неким атавизмом - они есть в сравнительно новом и модном C#. Значит смысла они не лишены и вряд ли имеет смысл от них отказываться с упорством маньяка

При этом On Error GoTo ErrorHandler мало чем отличается от On Error Resume Next. Просто во втором случае VB сам назначает метку перехода, виртуально устанавливая её после строки с ошибкой.
...
Рейтинг: 0 / 0
04.01.2016, 18:31
    #39142075
Bobgos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отключенная библиотека
The_Prist,On Error GoTo ErrorHandler это способ. А resume next это костыль.
...
Рейтинг: 0 / 0
04.01.2016, 19:04
    #39142091
Bobgos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отключенная библиотека
essbase.ru,

Евгений, а саму надстройку приложите?
...
Рейтинг: 0 / 0
04.01.2016, 20:40
    #39142123
essbase.ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отключенная библиотека
Bobgos,

Ссылка с сайта не работает ?
а так ?
http://essbase.ru/essbase.ru/Uploads/SQLSpider.rar
...
Рейтинг: 0 / 0
04.01.2016, 20:41
    #39142124
essbase.ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отключенная библиотека
...
Рейтинг: 0 / 0
05.01.2016, 16:51
    #39142446
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отключенная библиотека
BobgosOn Error GoTo ErrorHandler это способ. А resume next это костыльа можно поподробнее про это? Чем принципиально отличается GoTo от Resume Next да так, что одно Вы считаете правильным использовать, а другое нет? Спасибо.
...
Рейтинг: 0 / 0
08.01.2016, 14:58
    #39143365
essbase.ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отключенная библиотека
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.
 

Public Function isTextBoxPresent(vNameOfTextBox As String) As Boolean
On Error Resume Next
    isTextBoxPresent = False

    isTextBoxPresent = (Len(Trim(ActiveSheet.Shapes(vNameOfTextBox).TextFrame.Characters.Text)) > 0)
    If Err.Number > 0 Then
         Err.Clear
    End If
End Function
...
Рейтинг: 0 / 0
08.01.2016, 15:06
    #39143367
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отключенная библиотека
essbase.ru,

это не ответ на мой вопрос, это я знаю. Bobgos написал:
BobgosOn Error GoTo ErrorHandler это способ. А resume next это костыль
Вот мне и интересно, почему один оператор он считает правильным, а второй - костылем.
...
Рейтинг: 0 / 0
10.01.2016, 17:48
    #39144106
Bobgos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отключенная библиотека
The_Prist,

Resume next для меня означает отсутствие обработки ошибки. Согласен с единственным корректным использованием - получить статус объекта. И то только для того чтобы сократить код на одну строчку.
Goto означает, что предусмотрен обработчик, т.е. код более универсален. Качество обработчика может быть разным, но даже msgbox с кодом ошибки и именем функции и входными данными позволит диагностировать проблему. А резюме некст только скроет её.
...
Рейтинг: 0 / 0
10.01.2016, 20:56
    #39144160
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отключенная библиотека
BobgosResume next для меня означает отсутствие обработки ошибкиНу так бы и написали - для Вас лично. Если Вам лично не подходит - это же не значит, что это костыль для всех С таким подходом можно что угодно под костыль подписать. Поэтому я ранее и написал:
The_Pristскорее надо подходить к обработке ошибок без фанатизма и если есть возможность обойтись без On Error и при этом код будет не менее оптимальным - то надо обходится без них
Я вот применяю Resume, но не для сокрытия ошибок, а для выявления или в тех местах, где они заведомо обязательно появятся, но мне не надо их обрабатывать визуально(передавая в глобальный обработчик и прочее), а требуется лишь отследить и продолжить код в зависимости от свойств объекта Err. Потом я естественно, устанавливаю обратно глобальный обработчик ошибок(если это будет необходимо). Есть масса применений всех типов On Error в кодах - главное понимать что делаешь, а не применять наобум.
...
Рейтинг: 0 / 0
11.01.2016, 22:58
    #39145012
Bobgos
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отключенная библиотека
The_Prist,

Вобщем- все мы об одном и том же.
...
Рейтинг: 0 / 0
12.01.2016, 12:24
    #39145355
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отключенная библиотека
Bobgos,

Ну да.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Отключенная библиотека / 17 сообщений из 17, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]