全部產品
Search
文件中心

Alibaba Cloud SDK:異常處理

更新時間:Jul 05, 2024

本文為您介紹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;
}