このトピックでは、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;
}