Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.017 c
2-1187218781
{RASkov}
2007-08-16 02:59
2007.09.09
Как принудительно обновить размер колонок в ListView?


15-1186748515
Slider007
2007-08-10 16:21
2007.09.09
С днем рождения ! 10 августа 2007 пятница


15-1187068376
КольцовЮрий
2007-08-14 09:12
2007.09.09
Друзья, есть у кого нибудь примеры исходников...


15-1186674765
@!!ex
2007-08-09 19:52
2007.09.09
Как убрать звук?


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




   Наверх