from concurrent.futures import ThreadPoolExecutor, wait, ALL_COMPLETED
def div_zero(x):
print('In div_zero')
return x / 0
with ThreadPoolExecutor(max_workers=4) as executor:
futures = executor.submit(div_zero, 1)
done, _ = wait([futures], return_when=ALL_COMPLETED)
# print(done.pop().result())
print('Done')
Run Code Online (Sandbox Code Playgroud)
上面的程序将完全运行,没有任何错误消息。
仅当您显式调用future.result()或时future.exception()(如我在注释行中所做的那样),您才能获得异常。
我想知道为什么这个Python模块即使隐藏了问题也选择了这种行为。因此,我花费了数小时来调试编程错误(在类中引用了不存在的属性),否则该错误将在程序异常崩溃(例如Java)时非常明显。
| 归档时间: |
|
| 查看次数: |
276 次 |
| 最近记录: |