自定义线程类:带返回结果+抛异常
import threading
import traceback
class ThreadItWithResult(threading.Thread):
"""发送请求作为线程,返回一个请求结果"""
def __init__(self, func, *args, **kwargs):
super(ThreadItWithResult, self).__init__()
self.setDaemon(True)
self.func = func
self.args = args
self.kwargs = kwargs
self.result = None
def run(self):
try:
self.result = self.func(*self.args, **self.kwargs)
except Exception as e:
print(str(traceback.format_exc()))
print(f"{e}")
def get_result(self):
try:
return self.result
except Exception:
print(str(traceback.format_exc()))
return None
class ThreadItWithResultException(ThreadItWithResult):
def __init__(self, func, *args, **kwargs):
super(ThreadItWithResultException, self).__init__(func, *args, **kwargs)
def run(self):
try:
self.result = self.func(*self.args, **self.kwargs), True
except Exception as e:
print(str(traceback.format_exc()))
print(f"{e}")
self.result = f"{e}", False