异常处理
使用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客户成功社区