저는 파이썬과 멀티 스레드 프로그래밍에 익숙하지 않습니다. 기본적으로 파일을 다른 위치로 복사하는 스크립트가 있습니다. ....
스크립트가 여전히 실행 중임을 표시하기 위해 이것을 다른 스레드에 배치하고 싶습니다 .
내가 겪고있는 문제는 파일을 복사 할 수 없으면 예외가 발생한다는 것입니다. 메인 스레드에서 실행 중이면 괜찮습니다. 그러나 다음 코드가 작동하지 않습니다.
try:
threadClass = TheThread(param1, param2, etc.)
threadClass.start() ##### **Exception takes place here**
except:
print "Caught an exception"
스레드 클래스 자체에서 예외를 다시 throw하려고 시도했지만 작동하지 않습니다. 나는 여기에있는 사람들이 비슷한 질문을하는 것을 보았지만 모두 내가하려고하는 것보다 더 구체적인 것을하고있는 것 같습니다 (그리고 제공된 솔루션을 이해하지 못합니다). 나는 사람들이의 사용법을 언급하는 것을 보았지만 sys.exc_info()
그것을 어디서 어떻게 사용하는지 모른다.
모든 도움을 주셔서 감사합니다!
편집 : 스레드 클래스의 코드는 다음과 같습니다.
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
? 아마도 코드 샘플?