Главная страница
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.024 c
2-1187259357
DevilDevil
2007-08-16 14:15
2007.09.09
GetFileTime для выполняемого exe


2-1187014844
{RASkov}
2007-08-13 18:20
2007.09.09
Логин на сайт статистики


2-1187111259
nord489
2007-08-14 21:07
2007.09.09
Работа с *.ini


6-1169014151
Ravil
2007-01-17 09:09
2007.09.09
Компоненты на вкладке Client in Delphi 7


15-1186730378
Ламот
2007-08-10 11:19
2007.09.09
WinXP и драйвер JetFlash