子进程-直接获取孩子的异常

问题描述 投票:0回答:1

我想获得有关孩子中可能出现的例外的更多信息。我知道可以通过如下查看stderr来完成:

try:
    completed_process = subprocess.run(['python3', 'test.py'], capture_output=True, check=True)
except subprocess.CalledProcessError as e:
    print(e.stderr)

但是,我想知道是否可以直接在孩子中引发异常,例如ModuleNotFoundError

替代:一些用于解析原始标准错误的工具。

python-3.x subprocess
1个回答
0
投票

这是不可能的,因为用于派生/加入的处理工具除了返回代码以及可能导致退出的OS信号之外,都不知道任何细节。

如果您想要进程内的详细信息,例如异常,您实际上正在寻找threading

线程是在同一逻辑进程中使子例程具有并行性的一种方式,这将使您可以捕获进程中的详细信息,例如异常。

对于python3,详细信息在这里:https://docs.python.org/3/library/threading.html

© www.soinside.com 2019 - 2024. All rights reserved.