Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

Ручной отлов 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.022 c
1-41413
Yuri Btr
2003-10-29 17:02
2003.11.13
Вопрос по FloattoStrF


1-41419
dream
2003-10-29 15:35
2003.11.13
Нужно чтобы сервис запускал exe под именем пользователя


4-42307
sIm-sIm
2003-09-02 16:36
2003.11.13
как можно отследить запущено приложение или нет....?


6-41852
SEvgeniy
2003-09-05 18:27
2003.11.13
ограничение трафика


7-42143
webPauk
2003-09-03 14:20
2003.11.13
Блокировка клавы