On Error... or...On Local Error

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

On Error... or...On Local Error

Сообщение Vovik » 30.06.2004 (Ср) 12:50

Народ, объясните пож-ста толком отличие ф-ций On Error Resume Next и On Local Error Resume Next :roll:

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 30.06.2004 (Ср) 15:21

Где ты откопал это старье? Это устаревшая форма, поддерживаемая исключительно для обратной совместимости с кодом, написанным для предыдущих версий VB. Реальной разницы в работе нет, и не надейся...

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 30.06.2004 (Ср) 22:42

:shock: Неужели нет разницы??? Для чего-то же слово Local - зарезервировано....

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 01.07.2004 (Чт) 4:42

А я то думал что в исходниках с директиксом оно значит :cry:

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 01.07.2004 (Чт) 8:40

GM писал(а):А я то думал что в исходниках с директиксом оно значит :cry:
Я, кстати, тоже так думал.... Так что, нет разницы??? :?:

Vovik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 643
Зарегистрирован: 02.08.2003 (Сб) 15:14
Откуда: Belarus, Minsk

Сообщение Vovik » 02.07.2004 (Пт) 0:00

Так что же, уважаемые vb-прогерры, никто не знает? или не хочет говорить.... Почему-то же Microsoft пишет в примерах по dx именно Local Error :roll: Значит разница должна быть..... :?:

Sedge
Alternative Choice
Alternative Choice
Аватара пользователя
 
Сообщения: 1049
Зарегистрирован: 16.05.2002 (Чт) 18:23
Откуда: Somewhere-In-The-Net

Сообщение Sedge » 02.07.2004 (Пт) 9:58

Ну, вроде как идея была выдвинута - пишется ради совместимости. А чистить Local из кода MS-программисты не стали скорее всего из лени - какой смысл, если все и так работает...

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 02.07.2004 (Пт) 10:06

Говорю же - легаси это. Сами подумайте: если есть разница, значит, по аналогии с Local, должно быть тогда и Global. Но его нет, и если мне кто-нибудь покажет, как реализовать глобальный обработчик ошибок в VB без использования отладочного бубна и ассемблерных заклинаний, то с меня ящик пива :) .

Eduard
Бывалый
Бывалый
 
Сообщения: 254
Зарегистрирован: 31.08.2003 (Вс) 17:12
Откуда: Эстония

Сообщение Eduard » 02.07.2004 (Пт) 17:38

Ennor писал(а):Где ты откопал это старье? Это устаревшая форма, поддерживаемая исключительно для обратной совместимости с кодом, написанным для предыдущих версий VB. Реальной разницы в работе нет, и не надейся...

Интересно! А если не секрет поделись новинками в системе оброботок ошибок!

ToT
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 124
Зарегистрирован: 10.06.2002 (Пн) 11:56
Откуда: Russia, Taganrog

Сообщение ToT » 02.07.2004 (Пт) 19:42

To Ennor
А что ты имеешь в виду под глобальной обработкой ошибок. Насколько я знаю есть ф-ия SetExeptionHandler(или что-то такое, за название не ручаюсь, но смысл такой же), с помощью которой можно самому явно установить обработчик ошибок и исключений(в принципе это одно и тоже), а там сам будешь решать, что с ними делать. Или ятебя не так понял?
Keyboard not found. Press any key.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 02.07.2004 (Пт) 21:36

Под глобальной обработкой я имею в виду, что у меня на произвольный namespace (от функции до процесса) будет один-единственный обработчик, который будет вызываться автоматически. И мне не нужно будет в каждой функции писать свой, отдельный. И чтоб туда передавался стек вызовов, и номер ошибки, и массив значений аргументов последней функции (хотя бы в виде вариантов), и... да много еще чего. Короче, написал такую процу, подключил ее на уровне проекта, и забыл про это дело. А то, что в VB6... так, мух гонять. Кстати, такой функции я не нашел, но даже если она действительно есть, то мне очень интересно, как стыковать голый API с ActiveX COM, имеющим место быть в основе VB...
2 Eduard: сожалею, но порадовать нечем - со времен VB5 ничего нового.

ToT
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 124
Зарегистрирован: 10.06.2002 (Пн) 11:56
Откуда: Russia, Taganrog

Сообщение ToT » 03.07.2004 (Сб) 17:33

Как раз ф-ия о которой я говорил очень похожа нато что ты говорил(хотя я сильно и не приглядывался но вроде так) и прекрасно стыкуется с ActiveX, я сам видел недавно пример. Я поищу дома и если найду, то покажу тебе.
Keyboard not found. Press any key.

PUNK-GRUNGER
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 145
Зарегистрирован: 10.06.2004 (Чт) 14:22
Откуда: Украина, Николаев

Сообщение PUNK-GRUNGER » 04.07.2004 (Вс) 11:15

Будет надеяться, что ни Local, ни Global, ни ГоуТУ вам никогда не понадобяться :)
«Каждому программисту ЭВМ выдает то, что он заслуживает» (c)

ToT
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 124
Зарегистрирован: 10.06.2002 (Пн) 11:56
Откуда: Russia, Taganrog

Сообщение ToT » 04.07.2004 (Вс) 20:27

Вот нашел ф-ию. Называется она SetUnhandledExceptionFilter, ну почти угадал. Правда конечно она работает только наполовину, она отлавливает ошибки, которые не отлавливает Basic, так что согласен на половинну обещанного ящика пива.
Описание ф-ии:
The SetUnhandledExceptionFilter function enables an application to supersede the top-level exception handler of each thread and process.
After calling this function, if an exception occurs in a process that is not being debugged, and the exception makes it to the unhandled exception filter, that filter will call the exception filter function specified by the lpTopLevelExceptionFilter parameter.

Описание параметров:
lpTopLevelExceptionFilter
[in] Pointer to a top-level exception filter function that will be called whenever the UnhandledExceptionFilter function gets control, and the process is not being debugged. A value of NULL for this parameter specifies default handling within UnhandledExceptionFilter.
The filter function has syntax similar to that of UnhandledExceptionFilter: It takes a single parameter of type LPEXCEPTION_POINTERS, and returns a value of type LONG. The filter function should return one of the following values.
EXCEPTION_EXECUTE_HANDLER
Return from UnhandledExceptionFilter and execute the associated exception handler. This usually results in process termination.
EXCEPTION_CONTINUE_EXECUTION
Return from UnhandledExceptionFilter and continue execution from the point of the exception. Note that the filter function is free to modify the continuation state by modifying the exception information supplied through its LPEXCEPTION_POINTERS parameter.
EXCEPTION_CONTINUE_SEARCH
Proceed with normal execution of UnhandledExceptionFilter. That means obeying the SetErrorMode flags, or invoking the Application Error pop-up message box.

Определение можно найти в примере,я забыл его выписать.
Вложения
ErrorTrap.rar
Ловля ошибок
(2.86 Кб) Скачиваний: 72
Keyboard not found. Press any key.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 05.07.2004 (Пн) 20:37

Хм. Да, впечатляет. Буду ковырять, можно ли ее полностью породнить с VB.
А ты, значит, из Таганрога будешь... Подозреваю, что самовывоз пива из Москвы тебя не устроит :) . Ладно, что-нить придумаем, если что, тут на форуме моих координат полно. Спасибо.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 33

    TopList