简介
调用 SDK 请求对象存储(Cloud Object Storage,COS)或数据万象(Cloud Infinite,CI)服务失败时,抛出的异常皆是 RuntimeExcpetion。
目前 SDK 常见的异常有 CosClientException,CosServiceException,CIServiceException 和 IllegalArgumentException。
客户端异常
CosClientException 是由于客户端无法和服务端完成正常的交互而导致的失败。例如客户端无法连接到服务端,无法解析服务端返回的数据,读取本地文件发生 IO 异常等。CosClientException 继承自 RuntimeException,没有自定义的成员变量,使用方法同 RuntimeException。
服务端异常
CosServiceException 和 CIServiceException 用于指交互正常完成,但是操作失败的场景。例如客户端访问一个不存在 Bucket,删除一个不存在的文件,没有权限进行某个操作,服务端故障异常等。
CosServiceException 包含了服务端返回的状态码,requestid,出错明细等。捕获异常后,建议对整个异常进行打印,异常包含了必须的排查因素。以下是异常成员变量的描述:
request 成员 | 描述 | 类型 |
requestId | 请求 ID,用于表示一个请求,对于排查问题十分重要 | String |
traceId | 辅助排查问题的 ID | String |
statusCode | response 的 status 状态码,4xx 是指请求因客户端而失败,5xx 是服务端异常导致的失败。请参见 COS 错误码 | String |
errorType | 枚举类,表示异常的种类,分为 Client,Service,Unknown | ErrorType |
errorCode | 请求失败时 body 返回的 Error Code 请参见 COS 错误码 | String |
errorMessage | 请求失败时 body 返回的 Error Message 请参见 COS 错误码 | String |
使用自助诊断工具
使用步骤
1. 复制异常处理返回的 RequestId(请求 ID)。
2. 单击 CI 自助诊断工具,进入自助诊断页面。
3. 在顶部的 RequestId 输入框中,输入待诊断的 RequestId,并单击开始诊断,请您耐心等待几分钟,便能看到相应的智能诊断结果。