Tôi rất mới với Python và lập trình đa luồng nói chung. Về cơ bản, tôi có một tập lệnh sẽ sao chép các tập tin vào một vị trí khác. Tôi muốn điều này được đặt trong một luồng khác để tôi có thể xuất ra ....
để chỉ ra rằng tập lệnh vẫn đang chạy.
Vấn đề mà tôi gặp phải là nếu các tập tin không thể được sao chép thì nó sẽ tạo ra một ngoại lệ. Điều này là ổn nếu chạy trong luồng chính; tuy nhiên, có mã sau không hoạt động:
try:
threadClass = TheThread(param1, param2, etc.)
threadClass.start() ##### **Exception takes place here**
except:
print "Caught an exception"
Trong chính lớp xử lý, tôi đã cố gắng ném lại ngoại lệ, nhưng nó không hoạt động. Tôi đã thấy những người ở đây hỏi những câu hỏi tương tự, nhưng tất cả họ dường như đang làm một cái gì đó cụ thể hơn những gì tôi đang cố gắng làm (và tôi không hiểu lắm về các giải pháp được đưa ra). Tôi đã thấy mọi người đề cập đến việc sử dụng sys.exc_info()
, tuy nhiên tôi không biết sử dụng nó ở đâu và như thế nào.
Tất cả sự giúp đỡ được đánh giá rất cao!
EDIT: Mã cho lớp luồng bên dưới:
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
? Mã mẫu có lẽ?