OSS Android SDK 中有两种异常 ClientException 以及 ServiceException ,他们都是受检异常。
ClientException
ClientException指SDK内部出现的异常,比如参数错误,网络无法到达,主动取消等等。
ServiceException
OSSException指服务器端错误,它来自于对服务器错误信息的解析。OSSException一般有以下几个成员:
错误码 | 描述 |
AccessDenied | 拒绝访问 |
BucketAlreadyExists | Bucket已经存在 |
BucketNotEmpty | Bucket不为空 |
EntityTooLarge | 实体过大 |
EntityTooSmall | 实体过小 |
FileGroupTooLarge | 文件组过大 |
FilePartNotExist | 文件Part不存在 |
FilePartStale | 文件Part过时 |
InvalidArgument | 参数格式错误 |
InvalidAccessKeyId | AccessKeyId不存在 |
InvalidBucketName | 无效的Bucket名字 |
InvalidDigest | 无效的摘要 |
InvalidObjectName | 无效的Object名字 |
InvalidPart | 无效的Part |
InvalidPartOrder | 无效的part顺序 |
InvalidTargetBucketForLogging | Logging操作中有无效的目标bucket |
InternalError | OSS内部发生错误 |
MalformedXML | XML格式非法 |
MethodNotAllowed | 不支持的方法 |
MissingArgument | 缺少参数 |
MissingContentLength | 缺少内容长度 |
NoSuchBucket | Bucket不存在 |
NoSuchKey | 文件不存在 |
NoSuchUpload | Multipart Upload ID不存在 |
NotImplemented | 无法处理的方法 |
PreconditionFailed | 预处理错误 |
RequestTimeTooSkewed | 发起请求的时间和服务器时间超出15分钟 |
RequestTimeout | 请求超时 |
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在使用阿里云对象存储服务(OSS)的Android SDK进行开发时,正确处理异常是确保应用稳定性和用户体验的关键。您已经概述了ClientException
和ServiceException
两种主要异常类型及其含义,下面我将提供一些实际操作建议,帮助您更好地处理这些异常。
原因:这类异常通常源于客户端配置错误、网络问题或调用API时参数不合法等。例如,尝试上传一个空文件或者网络连接中断。
处理方式:
原因:当OSS服务器无法处理请求时抛出,可能是因为权限问题、资源不存在、请求不符合OSS服务规则等。
处理方式:
Code
来具体分析错误原因,并采取相应措施。例如,AccessDenied
意味着需要检查访问密钥的权限设置。RequestId
和HostId
联系阿里云技术支持获取帮助。RequestTimeout
),可以设计合理的重试逻辑,但需注意不要对特定错误无限重试,以免陷入死循环。ClientException
和ServiceException
分别做集中处理,保持代码的整洁和维护性。通过上述方法,您可以有效地管理和应对在使用OSS Android SDK过程中遇到的各类异常,提升应用的健壮性和用户体验。