কম্পিউটার

পাইথনে কলার থ্রেডে একটি থ্রেডের ব্যতিক্রম কীভাবে ধরবেন?


সমস্যা হল যে thread_obj.start() অবিলম্বে ফিরে আসে। আপনি যে চাইল্ড থ্রেডটি শুরু করেছেন সেটি তার নিজস্ব প্রেক্ষাপটে, নিজস্ব স্ট্যাকের মধ্যে কার্যকর করে। সেখানে যে কোনো ব্যতিক্রম ঘটে শিশু থ্রেড প্রসঙ্গে। আপনাকে কিছু বার্তা পাঠিয়ে এই তথ্যটি অভিভাবক থ্রেডের সাথে যোগাযোগ করতে হবে।

কোডটি নিম্নরূপ পুনরায় লেখা যেতে পারে:

import sys
import threading
import Queue
class ExcThread(threading.Thread):
def __init__(self, foo):
threading.Thread.__init__(self)
self.foo = foo
def run(self):
try:
raise Exception('An error occurred here.')
except Exception:
self.foo.put(sys.exc_info())
def main():
foo = Queue.Queue()
thread_obj = ExcThread(foo)
thread_obj.start()
while True:
try:
exc = foo.get(block=False)
except Queue.Empty:
pass
else:
exc_type, exc_obj, exc_trace = exc
print exc_type, exc_obj
print exc_trace
thread_obj.join(0.1)
if thread_obj.isAlive():
continue

  1. কিভাবে Python এ OverflowError ব্যতিক্রম ধরবেন?

  2. কিভাবে Python এ ArithmeticError ব্যতিক্রম ধরবেন?

  3. পাইথনে IOError ব্যতিক্রম কিভাবে ধরবেন?

  4. কিভাবে পাইথনে KeyError ব্যতিক্রম ধরবেন?