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

Вниз

Вопрос по Exception в TThread-е   Найти похожие ветки 

 
alles ©   (2007-08-16 11:41) [0]

Добрый день.
Есть один поток который запускается из основного потока. В нем идет какая-та проверка и если она не выполняется, поток генерирует Exception. Примерно так:

if not Assigned(NetShareEnumNT)
                    raise Exception.Create("NetShareEnumNT not assigned");                


как правильно передать этот Exception основному потоку и там показать окошку с Exception и завершить этот поток?
Спасибо


 
Сергей М. ©   (2007-08-16 12:12) [1]

оч просто.

Для этого класс TThread предоставляет публичный метод FatalException.

Им можно воспользоваться, например, так:

Основной поток после создания доолнительного потока в suspended-режиме устанавливает обработчик OnTerminate, в котором анализируется состояние этого св-ва. Если оно не равно nil, то в ходе работы доп.потока было зафиксировано необработанное тобой исключение, которое можно проанализировать (но не позднее вызова деструктора доп.потока) и при необходимости перевозбудить его вызовом raise FatalException


 
Сергей М. ©   (2007-08-16 12:14) [2]

Но лучше всего не допускать ситуаций с необработанными исключениями в потоке, оборачивая тело метода Execute в блок try..except


 
Leonid Troyanovsky ©   (2007-08-16 12:27) [3]


> alles ©   (16.08.07 11:41)  

> как правильно передать этот Exception основному потоку и
> там показать окошку с Exception и завершить этот поток?

http://dn.codegear.com/article/10452

--
Regards, LVT.


 
alles ©   (2007-08-16 13:07) [4]

Спасибо всем, иду читать :)



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

Текущий архив: 2007.09.09;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
15-1186563874
Суслик
2007-08-08 13:04
2007.09.09
Посоветуйте компонент - сохранение desktop а


4-1174387814
И. Павел
2007-03-20 13:50
2007.09.09
Запись на носитель без файловой системы


8-1165244587
Quicker
2006-12-04 18:03
2007.09.09
Проиграть MID, WAV


2-1187073587
kolj
2007-08-14 10:39
2007.09.09
Как убрать програму с панели пуск ?


15-1186596042
PEdee
2007-08-08 22:00
2007.09.09
Особенность компиляции в visual studio 2005