GCP Python库的基本异常类:“ google-api-python-client”

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

我正在使用Google Cloud提供的google-api-python-client库。 我正在使用许多方法来对计算引擎资源(磁盘,实例,快照等)进行操作,但是在进行大量操作时,为了更好地处理和提供有弹性的代码,我应该添加try..catch块并同时添加块,我意识到Google-Cloud不提供任何基本的Exception类。

我想到的最坏的情况是:

try:
 <code>
except:
 <prompt error>

但是我认为这不是正确的方法。

我想念什么吗? 还是GCP库未提供异常处理程序?

google-cloud-platform google-compute-engine google-api-python-client
2个回答
1
投票

我仔细阅读了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

@比尔·普林,请让我知道。


0
投票

简短的答案是google-api-python-client没有您要查找的异常类。

google-api-python-client库是一个较旧的库,受支持但未积极开发。 客户端调用代码都是自动生成的,并且是许多API的非常通用的客户端,因此除了网络/传输/ HTTP层之外,这里没有编码很多有意义的异常。

正在进行的开发是在google-cloud-python库上进行的,该库由手写库和自动生成的库组成。 您可能会注意到,尽管所有API都会及时发布,但还没有包括计算在内的所有API。 新的自动生成的代码将更多地关注惯用语言模式。

新库有一些更具体的例外,但是如果您有任何进一步改进的想法,我会在google-cloud-python客户端库中将您的想法描述为Github问题。

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