Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];

Вниз

Как обработать исключение сгенерированное в чужом объекте   Найти похожие ветки 

 
msgipss   (2005-06-03 09:43) [0]

Сорри название сообщение не совсем понятное, помогите пожалуйста разобраться с  теорией на следующем примере.
Создаю пустой проект Application, на форму помещаю компонент DOA (oracle access). При запуске приложения устанавливаю соединение с БД, и больше ничего не делаю. Через какое то время например в случае обрыва связи, объект DOA генерирует исключение. Как мне его зарегистрировать или обработать, не подменяя стандартный class Exception ? В общем это касается  любых используемых объектов которые во время своей работы могут сгенерировать исключение. Вся работа происходит в основном потоке.

Заранее благодарен за любую информацию по данному вопросу


 
-=XP=- ©   (2005-06-03 09:47) [1]

Application.OnException()


 
P.N.P. ©   (2005-06-03 09:48) [2]

Есть такой компонент - TApplicationEvents


 
Digitman ©   (2005-06-03 10:04) [3]


> объект DOA генерирует исключение


.. которое уже имеет конкретный, заранее определенный разработчиками ДОА класс.

можно проанализировать (в самом простом случае - в обработчике [1]) класс объекта-исключения и в зависимости от того или иного класса принимать те или иные меры

if e.classtype = EТакойТоИнтересующийМеняКласс then ...

конкретные классы исключений, генерируемых ДОА в том или ином случае, можно увидеть в исходниках ДОА (если таковые есть)

если же исходников нет, то их (имена классов исключений) можно определить там же :

MessageBox(0, PChar("Класс : " + e.Classname + " Сообщение : " + e.Message), "", mb_ok);


 
msgipss   (2005-06-03 11:46) [4]

Спасибо за ответ.
Т.е. если не обрабатывается сообщение try except"oм, то оно может быть обработано application.onexception.

А если я пишу сервис winnt, создаю там n потоков, в каждом из которых создаю какие то объекты, которые в процессе своей работы могут создать исключение. Как обработать исключение на уровне потока ?


 
Digitman ©   (2005-06-03 13:47) [5]


> Как обработать исключение на уровне потока ?


централизованно - никак.

придется заключать тела обработчиков OnStart/Stop/Execute каждое в свой try..except



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.04 c
3-1116297685
weris
2005-05-17 06:41
2005.06.29
Запрос SQl - пробема ...


3-1116318431
atruhin
2005-05-17 12:27
2005.06.29
Как подсчитать кол-во уникальных значений поля с учетом NULL


3-1115987536
Roman_SVT
2005-05-13 16:32
2005.06.29
Delphi и Mysql


9-1111248448
Fosgen
2005-03-19 19:07
2005.06.29
Возможно ламерский вопрос по GLScene


1-1118047334
john_mag
2005-06-06 12:42
2005.06.29
WorkSheet, WorkBook





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский