小编Nat*_*ams的帖子

检查python线程是否抛出异常

我有一组要并行完成的任务,但最后,我需要知道是否有任何线程抛出异常.我不需要直接处理异常,我只需要知道其中一个线程是否因异常而失败,所以我可以干净地终止脚本

这是一个简单的例子:

#!/usr/bin/python

from time import sleep
from threading import Thread

def func(a):
    for i in range(0,5):
        print a
        sleep(1)

def func_ex():
    sleep(2)
    raise Exception("Blah")


x = [Thread(target=func, args=("T1",)), Thread(target=func, args=("T2",)), Thread(target=func_ex, args=())]

print "Starting"
for t in x:
    t.start()

print "Joining"
for t in x:
    t.join()


print "End"
Run Code Online (Sandbox Code Playgroud)

在"结束"之前,我想遍历线程,看看是否有任何失败,然后决定是否可以继续使用脚本,或者我是否需要在此时退出.

我不需要拦截异常或停止其他线程,我只需要知道最后是否有任何失败.

python multithreading exception-handling exception

14
推荐指数
1
解决办法
2万
查看次数