异常处理

更新时间:

本节主要介绍升级版 SDK 的异常种类以及对于异常的处理。

新版SDK异常

新版 SDK 将异常的种类进行了一定的细分,主要细分为以下几个 Exception

  1. UnretryableException:该异常主要是因为网络问题造成,一般是网络问题造成达到最大重试次数后抛出。

  2. TeaException: 在 SDK 的请求中主要以业务报错为主的异常,该异常的示例中提供了三个参数为用户排查问题提供帮助:

    code: OpenAPI 业务报错的错误码。

    message:OpenAPI 业务报错的错误信息,其中会包含本次请求的 RequestId。

    data:OpenAPI 报错后服务端返回的详细信息。

  3. import os
    
    from Tea.exceptions import UnretryableException, TeaException
    from alibabacloud_ecs20140526.models import DescribeImagesRequest
    from alibabacloud_ecs20140526.client import Client
    from alibabacloud_tea_openapi.models import Config
    
    '''云服务器示例'''
    # 初始化Config
    config = Config(
        access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
        access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
        region_id='<regionId>'
    )
    client = Client(config)
    # 初始化Request
    request = DescribeImagesRequest(image_id='<image-id>', region_id='<regionId>')
    try:
        response = client.describe_images(request)
    except UnretryableException as e:
        # 网络异常
        print(e)
    except TeaException as e:
        # 业务异常
        print(e)
    except Exception as e:
        # 其他异常
        print(e)