简介
SDK 调用失败时,结果信息包含在 API 返回的 cos_status_t 结构中。
SDK 中使用每一个 API 的正确做法如下所示,为了简要,文档中范例不再给出具体异常的处理,仅给出 API 的使用范例。
cos_status_t *s = NULL;s = cos_put_object_from_file(options, &bucket, &object, &file, &headers, &resp_headers);if (!s && !cos_status_is_ok(s)) {// 按需要进行异常场景的日志输出和处理cos_warn_log("failed to put object from file", buf);if (s->error_code) cos_warn_log("status->error_code: %s", s->error_code);if (s->error_msg) cos_warn_log("status->error_msg: %s", s->error_msg);if (s->req_id) cos_warn_log("status->req_id: %s", s->req_id);}
客户端异常
当 cos_status_t 结构中 code 成员值小于0时,表明发生 SDK 本地客户端错误,错误码信息参考枚举 cos_error_code_e 定义。
typedef enum {COSE_OK = 0,COSE_OUT_MEMORY = -1000,COSE_OVER_MEMORY = -999,COSE_FAILED_CONNECT = -998,COSE_ABORT_CALLBACK = -997,COSE_INTERNAL_ERROR = -996,COSE_REQUEST_TIMEOUT = -995,COSE_INVALID_ARGUMENT = -994,COSE_INVALID_OPERATION = -993,COSE_CONNECTION_FAILED = -992,COSE_FAILED_INITIALIZE = -991,COSE_NAME_LOOKUP_ERROR = -990,COSE_FAILED_VERIFICATION = -989,COSE_WRITE_BODY_ERROR = -988,COSE_READ_BODY_ERROR = -987,COSE_SERVICE_ERROR = -986,COSE_OPEN_FILE_ERROR = -985,COSE_FILE_SEEK_ERROR = -984,COSE_FILE_INFO_ERROR = -983,COSE_FILE_READ_ERROR = -982,COSE_FILE_WRITE_ERROR = -981,COSE_XML_PARSE_ERROR = -980,COSE_UTF8_ENCODE_ERROR = -979,COSE_CRC_INCONSISTENT_ERROR = -978,COSE_FILE_FLUSH_ERROR = -977,COSE_FILE_TRUNC_ERROR = -976,COSE_UNKNOWN_ERROR = -100} cos_error_code_e;
服务端异常
当 cos_status_t 结构中 code 成员值大于0时,表明发生网络侧错误。
以下是 cos_status_t 结构的描述:
使用自助诊断工具
使用步骤
1. 复制异常处理返回的 RequestId(请求 ID)。
2. 单击 COS 自助诊断工具,进入自助诊断页面。
3. 在顶部的 RequestId 输入框中,输入待诊断的 RequestId,并单击开始诊断,请您耐心等待几分钟,便能看到相应的智能诊断结果。