异常处理

本节主要介绍原版 SDK 的异常以及如何进行异常处理。

原版 SDK 的异常主要通过捕获 ServerException 和 ClientException 异常来获取错误信息,在原版 SDK 中如果没有请求到服务端则无法通过异常获取到 RequestId, 如果请求得到了服务端则能获取到 RequestId 这个属性,通过这个属性可以让阿里云的开发同学协助使用 OpenAPI 的开发者排查问题。
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
try {
    AlibabaCloud::rpc()->product('ecs')->regionId('cn-hangzhou')->request();
} catch (ClientException $e) {
    // 获取错误消息
    echo $e->getErrorMessage();
} catch (ServerException $exception) {
    // 获取错误代码
    print_r($exception->getErrorCode());
    // 获取 Request Id
    print_r($exception->getRequestId());
    // 获取错误消息
    print_r($exception->getErrorMessage());
    // 获取结果对象
    print_r($exception->getResult());
    // 获取响应对象
    print_r($exception->getResult());
    // 获取请求对象
    print_r($exception->getResult()->getRequest());
}