Saya sangat baru dengan Python dan pemrograman multithread secara umum. Pada dasarnya, saya memiliki skrip yang akan menyalin file ke lokasi lain. Saya ingin ini ditempatkan di utas lain sehingga saya dapat menampilkan ....
bahwa skrip masih berjalan.
Masalah yang saya alami adalah jika file tidak dapat disalin maka akan menimbulkan pengecualian. Ini ok jika berjalan di utas utama; namun, memiliki kode berikut tidak berfungsi:
try:
threadClass = TheThread(param1, param2, etc.)
threadClass.start() ##### **Exception takes place here**
except:
print "Caught an exception"
Di kelas utas itu sendiri, saya mencoba melemparkan kembali pengecualian, tetapi tidak berhasil. Saya telah melihat orang-orang di sini mengajukan pertanyaan serupa, tetapi mereka semua tampaknya melakukan sesuatu yang lebih spesifik daripada apa yang saya coba lakukan (dan saya tidak begitu mengerti solusi yang ditawarkan). Saya telah melihat orang menyebutkan penggunaan sys.exc_info()
, namun saya tidak tahu di mana atau bagaimana menggunakannya.
Semua bantuan sangat dihargai!
EDIT: Kode untuk kelas utas di bawah:
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
? Contoh kode mungkin?