Bei Threads solltest du so vorgehen, dass du alle Exceptions abfängst.
Mit folgendem Code verhinderst du dass dir eine
Exception durch die Lappen geht.
ReturnValue
kann zusätzlich dazu benützt werden einen Fehler für den Starter des Threads zu signalisieren.
Delphi-Quellcode:
procedure TMeinThread.InternalExecute;
begin
// hier kommt der Code rein, der ürsprünglich in Execute stand
end;
procedure TMeinThread.Execute;
begin
try
InternalExecute;
ReturnValue := 0;
except
on E:
Exception do
begin
ReturnValue := 1;
// hier die Exception loggen
end;
end;
end;