我能够用subprocess.CalledProcessError捕获它,但是我想确保它是RuntimeError。我正在使用“subprocess.check_call”方法。
我尝试过类似的东西而且没用。
try:
subprocess.check_call(arguments, cwd=<my_cwd>)
except subprocess.CalledProcessError:
try:
raise
except RuntimeError:
print "Runtime Error....."
答案 0 :(得分:0)
我认为你不能做你想做的事。查看check_call
方法的说明。
使用参数运行命令。等待命令完成。如果 退出代码为零然后返回,否则提高 CalledProcessError。 CalledProcessError对象将具有 返回returncode属性中的代码。 参数与call函数相同。 例:
check_call(["ls", "-l"])
如果使用subprocess.check_call
调用python脚本,则无法判断是否发生RuntimeError
,因为唯一重要的是脚本的返回代码。
答案 1 :(得分:0)
不可能做你要问的事。它们是独立的过程。父母无法捕捉到孩子提出的任何例外情况。在检查了孩子的退出状态后,您可以在父母本身中CalledProcessError
提出check_call
。