Anzeigen: Delphi
C++
Anzeigeeinstellungen
Die Behandlung von Ausnahmen in der Thread-Funktion
Aus RAD Studio
Nach oben zu Thread-Objekte definieren - Index
Die Methode Execute muss alle Exceptions abfangen, die in einem Thread auftreten. Wird eine Exception in einer Thread-Funktion nicht abgefangen, kann Ihre Anwendung Zugriffsverletzungen verursachen. Dies ist bei der Entwicklung einer Anwendung nicht sofort ersichtlich, da hierbei die IDE die Exception abfängt. Wird die Anwendung jedoch außerhalb der Debugger-Umgebung ausgeführt, erzeugt diese Exception einen Laufzeitfehler, und die Anwendung kann nicht weiter ausgeführt werden.
Um die Exceptions abzufangen, die in der Thread-Funktion auftreten, fügen Sie einen try...except-Block der Implementierung der Methode Execute hinzu:
procedure TMyThread.Execute; begin try while not Terminated do PerformSomeTask; except {Exceptions irgendwie behandeln} end; end;
void __fastcall TMyThread::Execute() { try { while (!Terminated) PerformSomeTask(); } catch (...) { // Festlegen, was mit Exceptions geschieht } }