本节主要介绍升级版 SDK 的异常种类以及对于异常的处理。
新版SDK异常
新版 SDK 将异常的种类进行了一定的细分,主要细分为以下几个 Exception
UnretryableException:该异常主要是因为网络问题造成,一般是网络问题造成达到最大重试次数后抛出。
TeaException: 在 SDK 的请求中主要以业务报错为主的异常,该异常的示例中提供了三个参数为用户排查问题提供帮助:
code: OpenAPI 业务报错的错误码。
message:OpenAPI 业务报错的错误信息,其中会包含本次请求的 RequestId。
data:OpenAPI 报错后服务端返回的详细信息。
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)