我正在使用Google Cloud提供的google-api-python-client库。 我正在使用许多方法来对计算引擎资源(磁盘,实例,快照等)进行操作,但是在进行大量操作时,为了更好地处理和提供有弹性的代码,我应该添加try..catch
块并同时添加块,我意识到Google-Cloud不提供任何基本的Exception类。
我想到的最坏的情况是:
try:
<code>
except:
<prompt error>
但是我认为这不是正确的方法。
我想念什么吗? 还是GCP库未提供异常处理程序?
我仔细阅读了API返回的文档和错误堆栈,并能够找出处理错误的方式来处理代码中的异常。
因此,与您提到的不同,这是可能的。
使用以下方式,我们可以处理错误/异常。
import oauth2client.client
from googleapiclient import discovery
import googleapiclient.errors
#
# prepare credentials dictionary
#
try:
compute = discovery.build(
"compute", "v1", credentials=credentials)
except oauth2client.client.HttpAccessTokenRefreshError as e:
print 'Error > ', e.message
except googleapiclient.errors.HttpError as e:
reason = str(e._get_reason).split("\"")[-2]
print 'Error > ', reason
我希望这是有帮助的!
这两个是最常见的错误。 可能还有其他错误,这完全取决于大小写。
但是所有错误都应该出现在googleapiclient.errors class
@比尔·普林,请让我知道。
简短的答案是google-api-python-client
没有您要查找的异常类。
google-api-python-client
库是一个较旧的库,受支持但未积极开发。 客户端调用代码都是自动生成的,并且是许多API的非常通用的客户端,因此除了网络/传输/ HTTP层之外,这里没有编码很多有意义的异常。
正在进行的开发是在google-cloud-python库上进行的,该库由手写库和自动生成的库组成。 您可能会注意到,尽管所有API都会及时发布,但还没有包括计算在内的所有API。 新的自动生成的代码将更多地关注惯用语言模式。
新库有一些更具体的例外,但是如果您有任何进一步改进的想法,我会在google-cloud-python
客户端库中将您的想法描述为Github问题。