本文介绍表格存储Python SDK的错误处理方式和重试策略。

方式

表格存储Python SDK目前采用“异常”的方式处理错误。如果调用接口没有抛出异常,则说明操作成功,否则失败。

说明 批量相关接口,例如BatchGetRow和BatchWriteRow不仅需要判断是否有异常,还需要检查每行的状态是否成功,只有全部成功后才能保证整个接口调用是成功的。

异常

表格存储Python SDK中有OTSClientError和OTSServiceError两种异常,都最终继承自Exception。

  • OTSClientError:指SDK内部出现的异常,例如参数设置错误,返回结果解析失败等。
  • OTSServiceError:指服务器端错误,来自于对服务器错误信息的解析。OTSServiceError包含以下几个成员:
    • get_http_status:HTTP返回码,例如200、404等。
    • get_error_code:表格存储返回的错误类型字符串。
    • get_error_message:表格存储返回的错误消息字符串。
    • get_request_id:用于唯一标识此次请求的UUID。当您无法解决问题时,记录此requestId并提交工单

重试

  • SDK中出现错误时会自动重试。默认策略是最大重试次数为20,最大重试间隔为3000毫秒。对流控类错误以及读操作相关的服务端内部错误进行的重试,请参见tablestore/retry.py。
  • 您也可以通过继承RetryPolicy类实现自定义重试策略,在构造OTSClient对象时,将自定义的重试策略作为参数传入。
目前SDK中已经实现的重试策略如下。
  • DefaultRetryPolicy:默认重试策略,只会对读操作重试,最大重试次数为20,最大重试间隔为3000毫秒。
  • NoRetryPolicy:不进行任何重试。
  • NoDelayRetryPolicy:没有延时的重试策略,请谨慎使用。
  • WriteRetryPolicy:在默认重试策略基础上,会对写操作重试。