异常处理

最近更新时间:2023-05-23 15:43:05

我的收藏

简介

API 返回 CosResult 结构,如果成功可以获取对应 Response 结构中的数据,失败可以通过 CosResult 获取详细信息。

服务端异常

CosResult 封装了请求出错时返回的错误码和对应错误信息,详情请参见 错误码
注意
SDK 内部封装的请求均会返回 CosResult 对象,每次调用完成后,均要使用 IsSucc() 成员函数判断本次调用是否成功。

成员函数

函数
函数描述
bool isSucc()
返回本次调用成功或失败
当返回 false 时:后续的 CosResult 成员函数才有意义
当返回 True 时:可以从 OperatorResp 中获取具体返回内容
string GetErrorCode()
获取 COS 返回的错误码,用来确定错误场景
string GetErrorMsg()
包含具体的错误信息
string GetResourceAddr()
资源地址,Bucket 地址或 Object 地址
string GetXCosRequestId()
当请求发送时,服务端将会自动为请求生成一个唯一的 ID。使用遇到问题时,request-id 能更快地协助 COS 定位问题
string GetXCosTraceId()
当请求出错时,服务端将会自动为这个错误生成一个唯一的 ID,trace-id 与 request-id 一一对应。使用遇到问题时,trace-id 能更快地协助 COS 定位问题
int GetHttpStatus()
获取 HTTP 状态码

请求和响应基类

BaseReq、BaseResp 封装了请求和返回, 调用者只需要根据不同的操作类型生成不同的 OperatorReq,并填充 OperatorReq 的内容即可。 函数返回后,调用对应 BaseResp 的成员函数获取请求结果。
对于 Request,如无特殊说明,仅需要关注 Request 的构造函数。
对于 Response,所有方法的 Response 均有获取公共返回头部的成员函数。Response 的公共成员函数如下,具体字段含义请参见 公共返回头部,此处不再赘述。
uint64_t GetContentLength();
std::string GetContentType();
std::string GetEtag();
std::string GetConnection();
std::string GetDate();
std::string GetServer();
std::string GetXCosRequestId(); //获取 RequestId,即请求 ID
std::string GetXCosTraceId();

使用自助诊断工具

针对请求可能遇到不同的报错情况,我们为您提供了 COS 自助诊断工具,帮助您快速定位问题,调试报错代码。

使用步骤

1. 复制异常处理返回的 RequestId(请求 ID)。
2. 单击 COS 自助诊断工具,进入自助诊断页面。

3. 在顶部的 RequestId 输入框中,输入待诊断的 RequestId,并单击开始诊断,请您耐心等待几分钟,便能看到相应的智能诊断结果。