Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.63/347: Рейтинг темы: голосов - 347, средняя оценка - 4.63
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153

Когда имеет смысл ставить "on Error Resume Next"

18.03.2009, 15:13. Показов 64451. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня разработчикам!

Как известно, у нормального лотусного программиста функция выглядит так:

Code
1
2
3
4
5
6
7
8
Function Function_name
On Error Goto Errh
Тело функции
Exit Function
Errh:
Call ErrHandler
Exit Function
End Function
Сам errorhandler может немного отличаться, я про саму конструкцию.

Но при этом внутри ф-ии иногда используется конструкция вида

Code
1
2
3
On Error Resume Next
Потенциально опасная операция
On Error Goto Errh
Хотел поинтересоваться, кто и когда использует вторую конструкцию и вообще стоит ли её использовать.

Что бы не быть голословным приведу примеры, что зачастую ставлю внутрь "On Error Resume Next":
1. Set doc = db.GetDocumentByID/UNID(ID) (ну это у меня вынесено в отдельную ф-ию)
2. Call Dc.AddDocument(doc)
3. MkDir
4. Kill
5. RmDir
6. Dir

Иногда использую такую конструкцию (может кому пригодиться):

Code
1
2
3
4
5
On Error Resume Next
Error 1001
Потенциально опасная операция
On Error Goto Errh
If Err <> 1001 Then Потенцально опасная операция таки вывалилась :)
Вообщем, вопрос таков: кто для чего испрользует эти конструкции, стоит ли вообще их использовать и где кончается нормальная практика и начинается злоупотребление?
Спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.03.2009, 15:13
Ответы с готовыми решениями:

Имеет ли смысл ставить Win8
Сейчас уже виндовс 8.

Имеет ли смысл ставить больше памяти?
Здравствуйте. Купил новый ноутбук, где оперативаня папять 4+4. Одна из них впаяно прямо на матплате. Можно сделать апгрейд и будет 8+4....

Антивирус бесплатный имеет ли смысл ставить?
Добрый. имеет ли смысл ставить бесплатный антивирус или репакнутую сборку платного антивируса? на мой нубский взгляд бесплатный антивир...

35
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
02.02.2010, 16:19
Студворк — интернет-сервис помощи студентам
а слона-то я и не заметил... ))

мдя, никогда не встречал такой необходимости, но буду иметь в виду
0
1 / 1 / 0
Регистрация: 01.10.2006
Сообщений: 615
02.02.2010, 16:54
конструкцию On Error Resume Next использую редко, только там, оно где действительно, например, нужно пропустить какой-то сбойный момент (документ, поле), при отправке писем по списку, а пользователя нет в АК, проверка признака каталог или файл по пути..

On Error Goto Errh используется везде - в процедурах, просто для отлова недочетов кода,
в функциях, как обязательная часть возвращения пустого/не пустого значения..


Добавлено:


Цитата Сообщение от Omh
Можешь напомнить, как выглядела твоя GetDocByUNID/аналог или как ты удаляешь файлы с помошью Kill, например?


Code
1
2
3
4
5
6
7
8
9
10
11
Function delFile( fileName As String) As Boolean
try:
On Error Goto catch
If trim(fileName) = "" Then Exit Function
Kill fileName
delFile = True
Exit Function
catch:
Call logs.addError( MAIN_TYPELOG, Err, Getthreadinfo(1))
Exit Function
End Function
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
02.02.2010, 17:13
и кстати ни одна из конструкций не сбрасывает стек ошибок
когда ошибок набирается на 32К агент тупо вываливается с руганью об нехватки стека
0
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
02.02.2010, 17:15
Цитата Сообщение от ToxaRat
и кстати ни одна из конструкций не сбрасывает стек ошибок
когда ошибок набирается на 32К агент тупо вываливается с руганью об нехватки стека
поясни, а? пример кода покажи
0
1 / 1 / 0
Регистрация: 01.10.2006
Сообщений: 615
02.02.2010, 17:17
Цитата Сообщение от ToxaRat
и кстати ни одна из конструкций не сбрасывает стек ошибок
когда ошибок набирается на 32К агент тупо вываливается с руганью об нехватки стека
ни разу такого не видел, и когда такое происходило на практике ?
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
02.02.2010, 17:25
Akupaka
Пример:
Есть у меня агент, который ночью посылает почту по Doc.Send
естественно если того, куда оно шлет нету в серверной АК вылетает ошибка(письмо внутреннее но лотусиное имя уже удалено)
возникает ошибка (адресат что-то там не найден..) если агенту много такого разсылать и он попадает на вот таких вот мертвяков заканчивается это как правило вылетом по нехватки памяти для сетка чего-то там для 64К чего-то там, щас не могу дать точную мессагу, только седня почистит DDM
0
1 / 1 / 0
Регистрация: 01.10.2006
Сообщений: 615
02.02.2010, 17:29
Цитата Сообщение от ToxaRat
Akupaka
Пример:
Есть у меня агент, который ночью посылает почту по Doc.Send
естественно если того, куда оно шлет нету в серверной АК вылетает ошибка(письмо внутреннее но лотусиное имя уже удалено)
возникает ошибка (адресат что-то там не найден..) если агенту много такого разсылать и он попадает на вот таких вот мертвяков заканчивается это как правило вылетом по нехватки памяти для сетка чего-то там для 64К чего-то там, щас не могу дать точную мессагу, только седня почистит DDM
а письма отсылались отдельное каждому адресату или одно письмо на пачку-массив адресатов ?
или и так, и так падает ?
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
02.02.2010, 17:40
а письма отсылались отдельное каждому адресату или одно письмо на пачку-массив адресатов ?
не, отдельные письма, никаких переполнений пачек-массивов, будет сообщение обязательно тут его выложу как есть
0
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
02.02.2010, 18:11
Цитата Сообщение от ToxaRat
будет сообщение обязательно тут его выложу как есть
тогда и поговорим ) пока что, не понимаю какой-такой стек переполняется
0
1 / 1 / 0
Регистрация: 07.12.2009
Сообщений: 1,197
02.02.2010, 20:10
Цитата Сообщение от Akupaka


Цитата Сообщение от ToxaRat
не, отдельные письма, никаких переполнений пачек-массивов, будет сообщение обязательно тут его выложу как есть
тогда и поговорим ) пока что, не понимаю какой-такой стек переполняется
у меня тоже что-то подобное на серваке крутится, но такого не встречалось, хотя... всё может быть
и код обработки этой ошибки тоже, плз )
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
03.02.2010, 09:06
AMgr: Error executing agent **** in ***.nsf. Agent signer ****: Memory allocation request exceeded 65,000 bytes
0
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
03.02.2010, 12:06
Цитата Сообщение от ToxaRat
AMgr: Error executing agent **** in ***.nsf. Agent signer ****: Memory allocation request exceeded 65,000 bytes
а где слово о том, что это связано со "стеком ошибок"?

и вообще, нашел упоминания о том, что эта ошибка связана с переполнением поля логирования агента!
какой такой "стек ошибок", Тоха?

зы: вот тут нашел, если что
http://www.cubetoon.com/2009/memory-alloca...ed-65000-bytes/
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
03.02.2010, 12:32
какой такой "стек ошибок", Тоха
ну дык, лог агента я и называю "стек ошибок", туда то пишутся именно ошибки, логично?
0
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
03.02.2010, 12:35
Цитата Сообщение от ToxaRat
ну дык, лог агента я и называю "стек ошибок", туда то пишутся именно ошибки, логично?
так же как и с биде...

почему-то у меня агент, в котором ошибки обрабатываются обработчиком в логе не имеет этих сообщений... может, ты что-то не так делаешь?..
расскажи подробнее
0
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 3,019
03.02.2010, 14:07
Akupaka
да уже рассказал, посенди доки на несущесвующие адреса в АК, только основательно так, чтобы минимум 1К ошибок отловить а не парочку
0
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
03.02.2010, 15:23
Цитата Сообщение от ToxaRat
да уже рассказал, посенди доки на несущесвующие адреса в АК, только основательно так, чтобы минимум 1К ошибок отловить а не парочку
Тоха, просил же, не пиши слов типа "посенди", я две секунды втыкал т твою фразу, пока понял, что ты написал

теперь по задаче, я пробовал простой код с обработчиком, в котором много раз генерилось исключение, но агент никуда не упал.
поэтому я просил от тебя пример кода. только сведи его к минимуму, пжл
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.02.2010, 15:23

Имеет ли смысл ставить видеокарту на эту сборку?
Всем привет, я в общем чайник. Есть мезозойский комп: плата GYGabyte GA-G41MT-S2P(775 сокет, оперативка DDR3 1333- 4 Гб, PCIEx16), проц...

Имеет ли смысл ставить доп. охлаждение на видеокарту
Доброго времени суток! Имеется видеокарта Geforce GTX 650, не разогнанная. Установлены последние драйвера. Во время нагрузки греется до 45...

Имеет ли смысл ставить ссылки в 1ps через редирект
А для чего имеет тогда смысл ставить ссылки с редиректом?

Имеет ли смысл ставить gtx 770 на мой компьютер?
Всем привет. Знакомый предложил видеокарту Palit Jetstream GTX770 256bit 2gb. Отсюда вопрос: нормально ли она встанет с моим процессором и...

Имеет ли смысл ставить 1050Ti 4Gb или 1060 3(6)Gb к старенькому i7?
Подскажите пожалуйста, имеет ли смысл присоседить 1050Ti или 1060 3(6)Gb к: Intel Hunter Cove DH55HC QuadCore Intel Core i7-870,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
Новые блоги и статьи
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru