异常处理
更新时间:2021-09-06
客户端异常
客户端异常表示客户端尝试向BOS发送请求以及数据传输时遇到的异常。 例如,当发送请求时网络连接不可用时,client操作会返回非零;当上传文件时发生IO异常时,返回非零。
客户端执行put_object、delete_bucket等操作返回非零,具体返回错误码信息见bcesdk/common/common.h
。也可调用bcesdk/util/util.h
当中的stringfy_ret_code
函数将返回的错误码转为字符串进行打印。
C++
1int ret = client.upload_file("bucketName", "objectName", "fileName");
2if (ret != 0) {
3 std::cout << "client error occurs: " << stringfy_ret_code(ret) << std::endl;
4 return ret;
5}
6return RET_OK;//RET_OK=0代表成功执行
7
8//建议使用request&response标准请求接口, 请求更加规范
服务端异常
当BOS服务端出现异常时,BOS服务端会返回给用户相应的错误信息,以便定位问题。常见服务端异常可参见BOS错误信息格式
服务端出现异常,会将错误信息写到response中,通过response进行异常处理
C++
1int ret = client.put_object(request, &response);
2if (response.is_fail()) {
3 //状态码,0表示成功,400~599代表HTTP错误码,1000~代表客户端错误
4 //建议打印requestid, 有助于快速定位异常请求
5 int status = response.status_code();
6 std::string msg = response.error().message();
7 std::string request_id = response.error().request_id();
8 printf("put object fail, [status_code = %d], [message = %s], [requestid = %s]", status, msg.c_str(), request_id.c_str());
9 return status;
10}
11return RET_OK;