すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud SDK:例外の処理

最終更新日:Jan 15, 2025

このトピックでは、PHP向けAlibaba Cloud SDK V1.0の例外の種類と例外の処理方法について説明します。

PHP向けAlibaba Cloud SDK V1.0を使用する際に発生する可能性のある例外は、サーバー例外を示すServerExceptionと、クライアント例外を示すClientExceptionの2種類に分類できます。例外が発生し、サーバーがリクエストを受信しない場合、例外の原因となったリクエストのIDを取得できません。サーバーが例外の原因となったリクエストを受信した場合、リクエストIDを取得できます。その後、リクエストIDを使用して、Alibaba Cloudテクニカルサポートに問い合わせることができます。

重要

この例では、エラーメッセージは参照用にのみ出力されます。実際のビジネスシナリオでは、例外を慎重に処理し、プロジェクトで例外を無視しないでください。適切な方法で例外を伝播する、ログを記録する、再試行を実行するなど、例外を処理するための合理的な対策を講じることをお勧めします。これは、システムの堅牢性と安定性を確保するのに役立ちます。

<?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;
}