使用ThreadPoolExecutor:如何在executor.map上使用EAFP概念?

问题描述

在Python中,我通常会编写函数,而不是LBYL(“跨越前先看”),而更喜欢EAFP(“请求宽恕比许可容易”)(请参见:https://devblogs.microsoft.com/python/idiomatic-python-eafp-versus-lbyl

是否有一种简单的方法(至少比实现该功能的LBYL-Checks更简单;)来实现return (root,query,builder) -> { Subquery<Long> subquery = query.subquery(Long.class); Root<B> subroot = subquery.from(B.class); final Predicate mainQueryPredicate = builder.equal(root.get("id"),subroot.get("id_A")); final Predicate codeFieldPredicate = builder.equal(subroot.get("code_field"),"alfacentauri"); subquery.select(subroot.get("id_A")).where(mainQueryPredicate,codeFieldPredicate); return builder.exists(subquery); } 的目标?它以某种方式隐藏了调用函数的异常。

查看此处:https://realpython.com/intro-to-python-threading/

注意:使用ThreadPoolExecutor可能会导致一些令人困惑的错误

例如,如果调用不带参数的函数,但在.map()中将其传递给参数,则线程将引发异常。

不幸的是,ThreadPoolExecutor将隐藏该异常,并且(在上述情况下)该程序将终止,没有任何输出。一开始调试起来可能会很混乱。

或者尝试一下:

executor.map

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)