Gestion des exceptions dans la fonction thread
Remonter à Ecriture de la fonction Thread
La méthode Execute doit capturer toutes les exceptions qui se produisent dans le thread. Si vous échouez à capturer une exception dans votre fonction thread, votre application risque de provoquer des violations d'accès. Cela ne se voit pas lorsque vous développez car l'EDI capture l'exception, mais lorsque vous exécuterez votre application hors du débogueur, l'exception provoquera une erreur d'exécution et l'application cessera de s'exécuter.
Pour capturer les exceptions se produisant à l'intérieur de votre fonction thread, ajoutez un bloc try...except à l'implémentation de la méthode Execute :
procedure TMyThread.Execute;
begin
try
while not Terminated do
PerformSomeTask;
except
{ do something with exceptions }
end;
end;
void __fastcall TMyThread::Execute() {
try {
while (!Terminated)
PerformSomeTask();
}
catch (...) {
// do something with exceptions
}
}