当 SDK 请求失败的时候,返回的 error 将不为空,并且包括了错误码、错误描述和其它一些调试必备的信息,以帮助开发者快速解决问题。返回错误码(封装在返回的 error 里)主要包括两类:客户端错误和服务端错误。
客户端错误
对于设备本身因为网络原因产生的错误码,都是负数并且是四位数,例如-1001,这类错误码由苹果公司定义,可以参考 Foundation 框架中的 NSURLError.h 头文件内的定义。
对于腾讯云 SDK 网络层本地客户端自定义错误:主要是指网络异常、证书无效、参数校验失败等,如下表所示:
错误码 | 错误信息 | 错误描述 |
10000 | InvalidArgument | 参数校验失败,例如必填参数为空。 |
10001 | InvalidCredentials | 密钥信息校验失败,例如密钥为空。 |
10002 | BadRequest | SDK 配置错误,例如 APPID、region 配置出错。 |
10003 | SinkSourceNotFound | 输入源或者输出源错误,例如上传的文件不存在。 |
10004 | ETagNotFound | 上传分片时没有返回 Etag 信息,请检查网络环境。 |
20000 | InternalError | 内部错误。 |
20001 | ServerError | 服务错误,例如返回了非 xml 格式数据。 |
20002 | IOError | 流读写 IO 异常,例如文件读写 IO 异常。 |
20003 | NetworkError | 网络出现异常,例如网络不可用,连接中断,DNS 解析失败等。 |
20004 | DataIntegrityError | 数据完整性校验失败。 |
30000 | UserCancelled | 用户已取消了请求。 |
30001 | AlreadyFinished | 已执行过请求。 |
30002 | DuplicateTask | 重复任务。 |
40000 | KMSError | KMS 加解密错误。 |
200033 | SocketTimeoutException | 网络超时。该错误码出现在 Android SDK 版本5.8.7-5.0.20,建议您升级到最新 SDK 版本。 |
服务端错误
使用自助诊断工具
使用步骤
1. 复制异常处理返回的 RequestId(请求 ID)。
2. 单击 COS 自助诊断工具,进入自助诊断页面。
3. 在顶部的 RequestId 输入框中,输入待诊断的 RequestId,并单击开始诊断,请您耐心等待几分钟,便能看到相应的智能诊断结果。