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 :
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.
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
Avez-vous une solution à me proposer ou une autre méthode pour arrêter ce thread ?
Merci d’avance
Jean-Michel
Partager