Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
ВнизРучной отлов Exception-ов - ? Найти похожие ветки
← →
Nikolay M. (2003-10-31 11:32) [0]При отлавливании глюков в программе на VB с удивлением узнал (до сих пор не уверен в этом на все 100), что там отсутствует аналог try...except. Т.е. если, например, при работе с OLE-объектом произошло исключение, то утверждается (не мной), что отловить эту ошибку никак нельзя, со всеми вытекающими последствиями для программы и этого объекта.
Посему возникло два вопроса:
можно ли все-таки как-то отловить исключение средствами VB (вдруг кто имел с этим дело?)
и гораздо более интересный - можно ли отловить исключение в Delphi/Builder/VC и тп (не важно), не используя конструкции типа try..except, try..catch?
← →
Sandman25 (2003-10-31 11:57) [1]Я немного не в тему, но в некоторых языках есть глобальная переменная, в которую записывается код завершения предыдущей команды. Например,
LET i = 1/0
IF STATUS <> 0 THEN
...
К тому же есть команда, управляющая тем, что делать в случае ошибки.
Например,
WHENEVER ERROR CONTINUE
WHENEVER SQLERROR STOP
WHENEVER ERROR CALL myfunction
WHENEVER SQLERROR GOTO mylabel
Можно заставить программу выполнять бредовые команды типа
WHENEVER ERROR CONTINUE
LET a = 1/0
LET b = 1/0
LET c = 1/0
WHENEVER ERROR STOP
а потом продолжать нормальную работу как ни в чем не бывало.
← →
Плохиш_ (2003-10-31 12:03) [2]>Nikolay M. © (31.10.03 11:32)
Тебя обманули
← →
Nikolay M. (2003-10-31 12:16) [3]
> Sandman25 © (31.10.03 11:57) [1]
Это, наверное, что-то весьма специфичное для конкретного языка?
> Плохиш_ (31.10.03 12:03) [2]
Я знал это! :)
Только доказать никак не мог - не пишу я на VB.
А тогда закономерный вопрос - а как? :)
← →
Sandman25 (2003-10-31 12:29) [4]>Это, наверное, что-то весьма специфичное для конкретного языка?
В этом языке (Informix-4GL) просто нет аналогов try-except.
← →
Nikolay M. (2003-10-31 12:37) [5]А если все-таки зреть в корень: откуда есть идут ексепшены? Изначально?
Уже начинаю понемногу закапываться в мсдн... :)
← →
Юрий Зотов (2003-10-31 13:54) [6]> Nikolay M. © (31.10.03 12:37) [5]
В правильную сторону копаете, дружище.
См. SEH - Structured Exception Handling.
← →
Nikolay M. (2003-10-31 14:03) [7]
> Юрий Зотов © (31.10.03 13:54) [6]
Спасибо, я как раз уже там :)
Правда, про отлов их в VB 6.0 пока ничего хорошего не накопал (кроме on error goto), но чувствую, что истина где-то рядом...
← →
Плохиш_ (2003-10-31 14:15) [8]>Nikolay M. © (31.10.03 14:03) [7]
Ты будешь удивлён, но в обработке исключений на VB целых три слова совпадают по написанию с обработкой исключений в Delphi
;-)
← →
Nikolay M. (2003-10-31 14:16) [9]
> Плохиш_ (31.10.03 14:15) [8]
Это в .NET (VB 7.0?). В 6.0 такого нет, там SEH :(
← →
Плохиш_ (2003-10-31 14:23) [10]>Nikolay M. © (31.10.03 14:16) [9]
Hmm.. ладно, ок Плохиш_ (31.10.03 14:15) [8] отменяется ;-)
А чем On Error Resume Next не устраивает?
← →
Nikolay M. (2003-10-31 14:33) [11]
> Плохиш_ (31.10.03 14:23) [10]
Тогда такой вопрос: если ты работаешь из VB с Екселем через автоматизацию и в какой-то момент у екселя произойдет что-то вроде "Interface not supported" или "Internal server error", On Error Resume Next это отловит? Проверить сам не могу, VB-шника рядом нет.
← →
Dimaz-z (2003-10-31 15:05) [12]А в Delphi Application.OnExeption
← →
Nikolay M. (2003-10-31 15:07) [13]
> Dimaz-z © (31.10.03 15:05) [12]
Речь не об этом.
← →
Плохиш_ (2003-10-31 15:16) [14]>Nikolay M. © (31.10.03 14:33) [11]
Я уже давно не работаю с VB.
А проверять тебе придётся самому, да и пользы больше будет
← →
Nikolay M. (2003-10-31 15:25) [15]
> Плохиш_ (31.10.03 15:16) [14]
Дык и у меня VB нет :(
А интерес у меня чисто академический :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.034 c