Я дуже новачок у програмі Python та багатопотоковому програмуванні взагалі. В основному, у мене є сценарій, який буде копіювати файли в інше місце. Я хотів би, щоб це було розміщено в іншому потоці, щоб я міг вивести, ....
щоб вказати, що сценарій все ще працює.
Проблема, яка у мене є, полягає в тому, що якщо файли неможливо скопіювати, це призведе до виключення. Це нормально, якщо працює в основному потоці; однак, мати такий код не працює:
try:
threadClass = TheThread(param1, param2, etc.)
threadClass.start() ##### **Exception takes place here**
except:
print "Caught an exception"
У самому класі потоку я спробував перекинути виняток, але це не виходить. Я бачив, як люди тут задають подібні запитання, але всі вони, здається, роблять щось більш конкретне, ніж те, що я намагаюся зробити (і я не зовсім розумію пропоновані рішення). Я бачив, як люди згадують про використання sys.exc_info()
, проте не знаю, де і як ним користуватися.
Вся допомога дуже вдячна!
EDIT: Код для класу потоку знаходиться нижче:
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
? Зразок коду, можливо?