【发布时间】:2021-08-28 13:20:29
【问题描述】:
试图捕捉这个错误:
ERROR: (gcloud.compute.instances.add-labels) HTTPError 404: The resource 'projects/matei-testing-4010-5cbdeeff/zones/us-east1-b/instances/all' was not found
尝试了不同版本的代码,但没有一个对我有用。
我当前的代码似乎没有发现错误:
from googleapiclient import discovery, errors
try:
print("Applying labels")
gcloud_value = (f'gcloud compute instances add-labels all --labels="key=value" --zone=us-east1-b')
process = subprocess.run([gcloud_value], shell=True)
except errors.HttpError:
print("Command did not succeed because of the following error: {}".format(errors.HttpError))
如何捕捉错误以便以后使用?
谢谢
【问题讨论】:
-
子进程的返回值将只是可执行文件的退出代码除非您得到标准输出/错误并对其进行分析。您当然无法以您希望的方式捕获 HttpError 异常
-
我想要达到的目的是在出现此资源不存在的错误后记下。我和你说的有同样的感觉,但是我将如何通过获取 stdout/stderr 来实现我想要的,你有 python 的小例子吗?有没有办法像 grepping 错误文本将其标记为错误?或者有什么想法?感谢您的回答!