Anzeigen: Delphi C++
Anzeigeeinstellungen

Die Behandlung von Ausnahmen in der Thread-Funktion

Aus RAD Studio
Wechseln zu: Navigation, Suche

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
   }
 }



Siehe auch

In anderen Sprachen