对象存储BOS

    异常处理

    客户端异常

    客户端异常表示客户端尝试向BOS发送请求以及数据传输时遇到的异常。 例如,当发送请求时网络连接不可用时,client操作会返回非零;当上传文件时发生IO异常时,返回非零。

    客户端执行put_object、delete_bucket等操作返回非零,具体返回错误码信息见bcesdk/common/common.h。也可调用bcesdk/util/util.h当中的stringfy_ret_code函数将返回的错误码转为字符串进行打印。

    int ret = client.upload_file("bucketName", "objectName", "fileName");
    if (ret != 0) {
        std::cout << "client error occurs: " << stringfy_ret_code(ret) << std::endl;
        return ret;
    }
    return RET_OK;//RET_OK=0代表成功执行

    服务端异常

    当BOS服务端出现异常时,BOS服务端会返回给用户相应的错误信息,以便定位问题。常见服务端异常可参见BOS错误信息格式

    服务端出现异常,会将错误信息写到response中,通过response进行异常处理

    int ret = client.put_object(request, &response);
    if (response.is_fail()) {
        //状态码,0表示成功,400~599代表HTTP错误码,1000~代表客户端错误
        int status = response.status_code();
        std::string msg = response.error().message();
        printf("put object fail, [status_code = %d], [message = %s]", status, msg.c_str());
        return status;
    }
    return RET_OK;

    SDK日志

    //设置日志
    FILE *logfp = fopen("sdk.log", "w");//设置日志输出文件
    sdk_set_log_stream(logfp);//设置输出流
    sdk_set_log_level(SDK_LOG_DEBUG);//设置日志级别

    日志一共五个级别:

    1. SDK_LOG_DEBUG
    2. SDK_LOG_INFO
    3. SDK_LOG_WARN
    4. SDK_LOG_ERROR
    5. SDK_LOG_FATAL
    上一篇
    文件管理
    下一篇
    版本变更记录