异常处理

  • 使用AWS HTTP SDK for Java API工具包,异常被统一到ApiException,该异常是uncheck异常,在需要处理的位置捕获即可

  • 使用签名URL请求实现的外部客户端,业务异常需要检查服务返回对象的errorCode参数是否为null或者空。错误码参见这里

对于异常处理的通用策略,也可参考使用本地原生API的异常处理

错误重试和指数退避

网络上的大量组件(例如 DNS 服务器、交换机、负载均衡器等)都可能在某个指定请求生命周期中的任一环节出现问题。在联网环境中,处理这些错误回应的常规技术是在客户应用程序中实施重试。

如果您没有使用我们提供的API工具包,则应当对收到HTTP服务器错误 (5xx) 或AWS服务特定错误码(如下)的请求执行重试。但是,如果是客户端错误 (4xx) 表示您需要对请求本身进行修改,纠正该问题,然后再重试。

特定的错误码

  • 590(AWS Instance Server连接失败)
  • 591(处理AWS Instance Server响应时发生错误)
  • 760(服务正在启动(Instance Starting))
  • 761(服务正在关闭(Instance Stoping))
  • 762(服务脱机(Instance Offline))
  • 770(应用正在启动(App Starting))
  • 771(应用正在关闭(App Stoping))
  • 772(应用脱机(App Offline))
  • 800(许可配额限制(Quota Limit))

除了简单重试之外,我们还建议使用指数退避算法来实现更好的控制。指数退避的原理是对于连续错误响应,重试等待间隔越来越长。您应该实施最长延迟间隔和最大重试次数。



Seven
 010-62962343-690
 liujx@actionsoft.com.cn
感谢您对该文档的关注!如果您对当前页面内容有疑问或好的建议,请与我联系。如果您需要解答相关技术问题请登录AWS客户成功社区