Ja, ein Prozess wird beendet, wenn irgendein Thread mit einer
Exception bis zum Windows durch rauscht.
Darum hat TThread auch intern ein Try-Except um das Execute, siehe ThreadProc in System.Classes.
Über Thread.FatalException kommt man im OnTerminate, DoTerminate oder im Destroy (vor Inherited) da dran.
Ebenso hat die
VCL deswegen um die meisten Events/Ereignisse ein Try-Except drumrum.
(nur bei Konsolenanwendungen, muß man es selber machen, aber darum enthält deren Codevorlage auch ein Try-Except)
Davon ausgehen: Nein, ähhh ja
Der Prozess wird geschlossen, wenn alle Threads beendet sind,
aber der Delphi-Hauptthread ruft am Ende ein
Halt aka
TerminateProcess auf und schießt ALLES brutal ab.