Bonjour a tous,

Je débute en python et je voudrais savoir s’il était possible de remonter une erreur dans une autre fonction, je m’explique :

J’ai crée un thread qui exécute tout plein de chose. Ceci dure très longtemps. Je veux donc crée une méthode (stop) pour arrêter ce thread. J’ai regardé les FAQ à ce sujet, mais cela ne me convient pas.

Voici la forme de mon thread :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Def run(self):
       Instruction 1 …
       Instruction 2 …
       …
       for test in test_list :
              instructions…
              …
              for …
                     instructions…
                     …
       instructions…
       …
Je ne veux pas avoir plein de if self._stopevent.isSet(): break après toute les lignes des for. J’ai donc pensé à mettre le premier for dans un try except. Je crée donc une méthode stop qui lève une exception (self.Stop_A_Loop='Stop_A_Loop' definie dans le __init__(self)). Et lorsque que je fais raise STOP_A_LOOP de la méthode stop, le programme ne propage pas cette exception jusqu’au run donc il ne se passe rien. Mais si je fais raise STOP_A_LOOP dans la méthode run cela arrête bien le thread.

Avez-vous une solution à me proposer ou une autre méthode pour arrêter ce thread ?

Merci d’avance
Jean-Michel