Hi Konstantin R. Beliaev !

 KRB> А куда по-твоему он еще может попасть? Raise выкидывает 
 KRB> exception на более верхний уровень, которым для твоего
 KRB> треда является уровень Application, т.е. основной поток 
 KRB> VCL, который перехватывает все ошибки подряд

Что значит "перехватывает" ????

Простой тест:

1. Главная форма, ОнБатнКлик:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  try
  {
    MessageBox(0,"BeforeThreadCreate","Main",MB_OK);
    new TTestThread(0);
    Sleep(5000);
    MessageBox(0,"AfterThreadCreate","Main",MB_OK);
  }
  catch(...)    //  для пущей важности
  {
    MessageBox(0,"Exception !","Main",MB_OK);
  }
}

2. Дополнительный поток:

void __fastcall TTestThread::Execute()
{
  int a=0;
  MessageBox(0,"Before","Thread",MB_OK);
  int b=1/a;
  MessageBox(0,"After","Thread",MB_OK);
}
//---------------------------------------------------------------------------

поток тихо вылетает, никаких ошибок не "перехватывается"

--

Ответить