在python中从多处理引发错误

在python中从多处理引发错误,python,exception,parallel-processing,Python,Exception,Parallel Processing,我有一些并行运行任务的代码: procs = [] for task in tasks: procs.append(multiprocessing.Process(target=foo, args=(task,))) procs[-1].start() for proc in procs: proc.join() 我想添加foo()抛出我定义的TaskFailError的功能。我希望此错误最终终止程序,因此我将在上面的代码中重新验证它,但我希望允许其他任务先完成。我不知

我有一些并行运行任务的代码:

procs = []
for task in tasks:
    procs.append(multiprocessing.Process(target=foo, args=(task,)))
    procs[-1].start()
for proc in procs:
    proc.join()
我想添加foo()抛出我定义的TaskFailError的功能。我希望此错误最终终止程序,因此我将在上面的代码中重新验证它,但我希望允许其他任务先完成。我不知道该怎么做。我考虑过这样的事情:

procs = []
try:
    for task in tasks:
        procs.append(multiprocessing.Process(target=foo, args=(task,)))
        procs[-1].start()
    for proc in procs:
        proc.join()
except TaskFailError as err:
    for proc in procs:
        proc.join()
    raise err
但重复代码是一个危险信号,如果第二个进程也引发错误,又会发生什么呢