tencent cloud

文档反馈

异常处理

最后更新时间:2022-01-05 14:36:27

    简介

    调用 SDK 接口请求对象存储(Cloud Object Storage,COS)服务失败时,例如返回码为4xx或者5xx,系统将抛出 (Qcloud\Cos\Exception\ServiceResponseException)异常。

    服务端异常

    CosServerException 包含了服务端返回的状态码、requestid 和出错明细等。捕获异常后,建议对整个异常进行打印,异常包含了必须的排查因素。以下是异常成员变量的描述以及异常捕获示例:

    成员 描述 类型
    requestId 请求 ID,用于表示一个请求,对于排查问题十分重要 string
    statusCode response 的 status 状态码,更多详情请参见 错误码 string
    errorCode 请求失败时 body 返回的 Error Code,更多详情请参见 错误码 string
    errorMessage 请求失败时 body 返回的 Error Message,更多详情请参见 错误码 string

    异常捕获示例

    <?php
    require dirname(__FILE__) . '/../vendor/autoload.php';
    $secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.tencentcloud.com/cam/capi
    $secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.tencentcloud.com/cam/capi
    $region = "ap-beijing"; //替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.tencentcloud.com/cos5/bucket
    $cosClient = new Qcloud\Cos\Client(
      array(
          'region' => $region,
          'schema' => 'https', //协议头部,默认为http
          'credentials'=> array(
              'secretId'  => $secretId ,
              'secretKey' => $secretKey)));
    
    try {
     $cosClient->listBuckets() 
    } catch (Qcloud\Cos\Exception\ServiceResponseException $e) {
      $statusCode = $e->getStatusCode(); // 获取错误码
      $errorMessage = $e->getMessage(); // 获取错误信息
      $requestId = $e->getRequestId(); // 获取错误的 requestId
      $errorCode = $e->getCosErrorCode(); // 获取错误名称
      $request = $e->getRequest(); // 获取完整的请求
      $response = $e->getResponse(); // 获取完整的响应
      echo ($e);
    } catch (\Exception $e) {
    }
    
    注意:

    如您使用 Phar 方式或源码方式安装 SDK,返回的异常信息提示会更加准确。如您使用 Composer 方式安装 SDK,返回的异常信息如不符合您的需求,可通过修改 vendor/guzzlehttp/guzzle-services/src/SchemaValidator.php 来自定义一些错误信息。

    使用自助诊断工具

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

    使用步骤

    1. 复制异常处理返回的 RequestId(请求 ID)。
    2. 单击 COS 自助诊断工具,进入自助诊断页面。
      COS 自助诊断工具
      点击自助诊断
      输入 RequestId 进行智能诊断,获取请求基本信息、帮助指引和诊断提示,快速定位请求错误。
    3. 在顶部的 RequestId 输入框中,输入待诊断的 RequestId,并单击开始诊断
    4. 稍侯片刻,便能看到相应的智能诊断结果。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持