Я очень новичок в Python и многопоточном программировании в целом. В принципе, у меня есть script, который скопирует файлы в другое место. Я хотел бы, чтобы это было помещено в другой поток, поэтому я могу вывести ....
, чтобы показать, что script все еще работает.
Проблема, с которой я столкнулась, заключается в том, что если файлы не могут быть скопированы, это вызовет исключение. Это нормально, если вы работаете в основном потоке; однако следующий код не работает:
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