擅长:python、mysql、java
<p>BigQuery是一个REST API,它使用的错误遵循标准的HTTP错误约定。</p>
<p>在python中,HttpError有一个resp.status字段,该字段返回HTTP状态代码。
如上所示,409是“冲突”,404是“未找到”。</p>
<p>例如:</p>
<pre><code>from googleapiclient.errors import HttpError
try:
...
except HttpError as err:
# If the error is a rate limit or connection error,
# wait and try again.
if err.resp.status in [403, 500, 503]:
time.sleep(5)
else: raise
</code></pre>
<p>响应也是一个json对象,更好的方法是解析json并读取错误原因字段:</p>
<pre><code>if err.resp.get('content-type', '').startswith('application/json'):
reason = json.loads(err.content).get('error').get('errors')[0].get('reason')
</code></pre>
<p>这可以是:
notFound、duplicate、accessDenied、invalidQuery、backendError、ResourcesXceedd、invalid、quotaExceeded、rateLimitExceeded、timeout等</p>