GCP Python 的基本例外 Class 库:"google-api-python-client"
Base Exception Class for GCP Python Library: "google-api-python-client"
我正在使用 google-api-python-客户端库,由 Google Cloud 提供。
我正在使用它的很多方法来操作计算引擎资源(磁盘、实例、快照等)
但是在进行大量操作时,为了更好地处理和弹性代码,我应该添加 try..catch
块并且在添加块时,我意识到 Google-Cloud 不提供任何基本异常 class.
我想到的最坏情况是:
try:
<code>
except:
<prompt error>
但我认为这不是正确的做法。
我错过了什么吗?或者 GCP-Library 不提供异常处理程序?
简短的回答是 google-api-python-client
没有您要查找的异常 类。
google-api-python-client
库是受支持但未积极开发的较旧库。客户端调用代码都是自动生成的,它是许多 API 的非常通用的客户端,因此除了 network/transport/HTTP 层之外,没有在其中编码很多有意义的异常。
google-cloud-python 库是未来的开发,它是手写库和自动生成库的混合体。您可能会注意到,并非所有 API(包括计算)都已经存在,尽管它们会及时出现。新的自动生成代码将更多地关注惯用语言模式。
新库有一些更具体的例外,但如果您对如何进一步改进它有任何想法,我会将您的想法描述为 google-cloud-python
客户端库上的 Github 问题。
我浏览了 API returns 的文档和错误堆栈,并且我能够找出处理错误的方法来处理我们代码中的异常。
所以,不像你提到的,有可能..!
使用下面的方法,我们可以处理errors/exceptions.
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
@Bill Prin,请告诉我。
我正在使用 google-api-python-客户端库,由 Google Cloud 提供。
我正在使用它的很多方法来操作计算引擎资源(磁盘、实例、快照等)
但是在进行大量操作时,为了更好地处理和弹性代码,我应该添加 try..catch
块并且在添加块时,我意识到 Google-Cloud 不提供任何基本异常 class.
我想到的最坏情况是:
try:
<code>
except:
<prompt error>
但我认为这不是正确的做法。
我错过了什么吗?或者 GCP-Library 不提供异常处理程序?
简短的回答是 google-api-python-client
没有您要查找的异常 类。
google-api-python-client
库是受支持但未积极开发的较旧库。客户端调用代码都是自动生成的,它是许多 API 的非常通用的客户端,因此除了 network/transport/HTTP 层之外,没有在其中编码很多有意义的异常。
google-cloud-python 库是未来的开发,它是手写库和自动生成库的混合体。您可能会注意到,并非所有 API(包括计算)都已经存在,尽管它们会及时出现。新的自动生成代码将更多地关注惯用语言模式。
新库有一些更具体的例外,但如果您对如何进一步改进它有任何想法,我会将您的想法描述为 google-cloud-python
客户端库上的 Github 问题。
我浏览了 API returns 的文档和错误堆栈,并且我能够找出处理错误的方法来处理我们代码中的异常。
所以,不像你提到的,有可能..!
使用下面的方法,我们可以处理errors/exceptions.
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
@Bill Prin,请告诉我。