Форум: "Основная";
Текущий архив: 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.037 c