Je suis très nouveau pour Python et la programmation multithread en général. En gros, j'ai un script qui permet de copier des fichiers vers un autre emplacement. Je voudrais être placé dans un autre thread, donc je peux sortie ....
pour indiquer que le script est encore en cours d'exécution.
Le problème que je rencontre est que si les fichiers ne peuvent pas être copiés, il va lever une exception. C'est ok si en cours d'exécution dans le thread principal; toutefois, ayant le code suivant ne fonctionne pas:
try:
threadClass = TheThread(param1, param2, etc.)
threadClass.start() ##### **Exception takes place here**
except:
print "Caught an exception"
Dans la classe thread lui-même, j'ai essayé de re-lancer l'exception, mais il ne fonctionne pas. J'ai vu des gens ici poser des questions similaires, mais ils semblent tous être en train de faire quelque chose de plus précis que ce que je suis en train de faire (et je ne suis pas tout à fait comprendre les solutions proposées). J'ai vu des gens parler de l'utilisation de sys.exc_info()
, cependant je ne sais pas où ou comment l'utiliser.
Toute aide est grandement appréciée!
EDIT: le code de La classe thread ci-dessous:
class TheThread(threading.Thread):
def __init__(self, sourceFolder, destFolder):
threading.Thread.__init__(self)
self.sourceFolder = sourceFolder
self.destFolder = destFolder
def run(self):
try:
shul.copytree(self.sourceFolder, self.destFolder)
except:
raise