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