异常处理

更新时间:

本文为您介绍V1.0 SDK的异常以及如何进行异常处理。

V1.0 SDK的异常主要通过捕获ServerException和ClientException异常来获取错误信息,在V1.0 SDK中如果没有请求到服务端,则无法通过异常获取到RequestId;如果请求到了服务端,则能获取到RequestId这个属性,通过这个属性可以让阿里云的开发同学协助使用OpenAPI的开发者排查问题。

重要

示例中仅做打印展示。请重视异常处理,切勿在项目中直接忽略异常。建议采取合理的措施来处理异常,比如合理地传播异常、记录日志、尝试恢复等,以确保系统的健壮性和稳定性。

<?php

require_once 'vendor/autoload.php';

use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Ecs\Ecs;

try {
    // 请确保已设置环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
    AlibabaCloud::accessKeyClient(getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'))->asDefaultClient();
    $request = Ecs::v20140526()->describeRegions();
    $result = $request
        ->version('2014-05-26')
        ->product('Ecs')
        ->action('DescribeRegions')
        ->regionId('cn-hangzhou')
        ->host("ecs.cn-hangzhou.aliyuncs.com")
        ->request();
    print_r($result->toArray());
} catch (ClientException $exception) {
    // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
    echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
    // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
    echo $exception->getMessage() . PHP_EOL;
    echo $exception->getErrorCode() . PHP_EOL;
    echo $exception->getRequestId() . PHP_EOL;
    echo $exception->getErrorMessage() . PHP_EOL;
}