Je suis très nouveau en Python et en programmation multithread en général. Fondamentalement, j'ai un script qui copiera les fichiers vers un autre emplacement. Je voudrais que cela soit placé dans un autre thread afin que je puisse sortir ....
pour indiquer que le script est toujours en cours d'exécution.
Le problème que j'ai, c'est que si les fichiers ne peuvent pas être copiés, il lèvera une exception. C'est correct si vous utilisez le thread principal; cependant, avoir 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 de thread elle-même, j'ai essayé de relancer l'exception, mais cela ne fonctionne pas. J'ai vu des gens ici poser des questions similaires, mais ils semblent tous faire quelque chose de plus spécifique que ce que j'essaie de faire (et je ne comprends pas très bien les solutions proposées). J'ai vu des gens mentionner l'utilisation de sys.exc_info()
, mais je ne sais pas où ni comment l'utiliser.
Toute aide est grandement appréciée!
EDIT: Le code de la classe de thread est 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
TheThread
? Exemple de code peut-être?