可能重复:
在 Python 的调用者线程中捕获线程的异常
我有一个给定的代码,并且有一个
thread.start_new_thread()
正如我刚刚在 python doc 中读到的:“当函数因未处理的异常而终止时,会打印堆栈跟踪,然后线程退出(但其他线程继续运行)。” 但是当(新)函数因异常终止时,我也想终止主线程 - 所以异常应转移到主线程。我怎样才能做到这一点?
编辑:这是我的代码的一部分:
def CaptureRegionAsync(region=SCREEN, name="Region", asyncDelay=None, subDir="de"):
if asyncDelay is None:
CaptureRegion(region, name, subDir)
else:
thread.start_new_thread(_CaptureRegionAsync, (region, name, asyncDelay, subDir))
def _CaptureRegionAsync(region, name, asyncDelay, subDir):
time.sleep(max(0, asyncDelay))
CaptureRegion(region, name, subDir)
def CaptureRegion(region=SCREEN, name="Region", subDir="de"):
...
if found:
return
else:
raise Exception(u"[warn] Screenshot has changed: %s" % filename)
CaptureRegionAsync(myregion,"name",2)