Форум: "Начинающим";
Текущий архив: 2007.09.09;
Скачать: [xml.tar.bz2];
ВнизВопрос по 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.059 c