在asyncio
模块中是否有一个与CalledProcessError
类似的东西?来自 subprocess
模块的异常?
我本来希望有一个模拟,因为 asyncio
模块创建 TimeoutError
异常替换 TimeoutExpired
来自 subprocess
模块的异常。但好像没有。
作为一个子问题:CalledProcessError
异常是否仅适用于 Popen
的实例类(class)?或者它是否也可以与实现(子)进程功能的其他类(例如来自asyncio
的Process
或来自tornado.process
的Subprocess
)一起使用?
看起来,CalledProcessError
异常可能适用于与 Popen
类似但不同的类实例。例如,可以在 GitHub 上找到 examples人们使用 tornado.process
中的 Subprocess
类的实例调用 CalledProcessError
。
请注意,在上面的示例中,虽然 tornado.process
确实有 subprocess.CalledProcessError
的别名,但基于 import
文件顶部的 code> 语句不是正在调用的异常;它实际上是 subprocess.CalledProcessError
被调用。
如果 CalledProcessError
也适用于 asyncio
中的 Process
类的实例,那么为什么 TimeoutExpired
不能还可以使用 asyncio
中的 Process
类的实例吗?换句话说,在 asyncio
中,为什么需要创建 TimeoutExpired
异常的新版本 (TimeoutError
),但不需要 有必要创建新版本的 CalledProcessError
异常吗?
归根结底the source code for CalledProcessError
没那么复杂,所以如果我想为 asyncio
中的 Process
类的实例创建一个重复版本,我想我可能可以,但似乎需要首先尝试避免此类代码重复。
注意:我当前的工作思维模型是“asyncio.subprocess
”模块旨在执行 subprocess
模块执行的所有操作,但异步”。如果这种心理模型不正确,这个问题可能会包含固有的先入之见/误解。
最佳答案
asyncio
不包含 CalledProcessError
的任何等效项,因为它不包含引发 CalledProcessError
的任何等价物。 check_call
没有等效项, check_output
, check_returncode
,或 check
run
的参数.
关于python - `CalledProcessError`模块中是否有 `asyncio`的模拟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50705914/