Sono molto nuovo di Python e della programmazione multithread in generale. Fondamentalmente, ho uno script che copia i file in un'altra posizione. Vorrei che questo fosse inserito in un altro thread in modo da poterlo produrre....
per indicare che lo script è ancora in esecuzione.
Il problema che sto riscontrando è che se i file non possono essere copiati genererà un'eccezione. Questo va bene se in esecuzione nel thread principale; tuttavia, il seguente codice non funziona:
try:
threadClass = TheThread(param1, param2, etc.)
threadClass.start() ##### **Exception takes place here**
except:
print "Caught an exception"
Nella stessa classe thread, ho provato a rilanciare l'eccezione, ma non funziona. Ho visto persone qui porre domande simili, ma sembrano tutti fare qualcosa di più specifico di quello che sto cercando di fare (e non capisco bene le soluzioni offerte). Ho visto persone menzionare l'uso disys.exc_info()
, tuttavia non so dove o come usarlo.
Tutto l'aiuto è molto apprezzato!
EDIT: il codice per la classe thread è di seguito:
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
? Esempio di codice forse?