全部產品
Search
文件中心

Alibaba Cloud SDK:異常處理

更新時間:Oct 12, 2025

本節主要介紹V2.0 SDK 的異常種類以及對於異常的處理。

異常種類

異常種類

說明

異常處理建議

UnretryableException

網路問題造成的異常,一般是網路問題造成達到最大重試次數後拋出。

  1. 檢查程式運行環境的網路是否存在問題。

  2. 若網路無問題,請嘗試調大逾時時間重試。

ClientException

用戶端異常,HTTP狀態代碼範圍在400-499之間,例如請求參數錯誤、認證失敗、許可權不足等。

Troubleshoot中,複製異常中的RequestId進行診斷,並根據診斷方案進行相應處理。

ServerException

服務端異常,HTTP狀態代碼範圍在500至599之間,指的是阿里雲出現的服務端問題,例如伺服器內部錯誤、服務不可用等情況。

請嘗試進行重試。如若經過多次重試仍無法解決問題,請聯絡我們尋求協助。

ThrottlingException

限流異常,當API調用觸發阿里雲限流機制時拋出。

請根據API文檔中的限流說明,適當調整API調用的頻率。

其中ClientException、ServerException和ThrottlingException提供了以下參數,協助您進行問題排查:

  • request_id:本次請求唯一識別碼。

  • status_code:OpenAPI返回的HTTP狀態代碼。

  • code:OpenAPI報錯的錯誤碼。

  • message:OpenAPI報錯的錯誤資訊。

  • data:OpenAPI報錯後服務端返回的詳細資料。

範例程式碼:

重要

樣本中僅做列印展示。請重視異常處理,切勿在專案中直接忽略異常。建議採取合理的措施來處理異常,比如合理地傳播異常、記錄日誌、嘗試恢複等,以確保系統的健壯性和穩定性。

import os

from alibabacloud_ecs20140526.client import Client
from alibabacloud_ecs20140526.models import DescribeImagesRequest
from alibabacloud_tea_openapi.exceptions import (
    ClientException,
    ServerException,
    ThrottlingException
)
from alibabacloud_tea_openapi.models import Config
from darabonba.exceptions import UnretryableException

'''雲端服務器樣本'''
# 初始化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='<REGION_ID>'
)
try:
    client = Client(config)
    # 初始化Request
    request = DescribeImagesRequest(image_id='<IMAGE_ID>', region_id='<REGION_ID>')
    response = client.describe_images(request)
except UnretryableException as e:
    # 網路異常,此處僅做列印展示,請謹慎對待異常處理,在工程專案中切勿直接忽略異常。
    print(e)
except  (ClientException, ServerException, ThrottlingException) as e:
    # 用戶端異常,此處僅做列印展示,請謹慎對待異常處理,在工程專案中切勿直接忽略異常。
    print(f"RequestId:{e.request_id},StatusCode:{e.status_code},Message:{e.message},Data:{e.data}")

解決異常

在調用API的過程中出現異常時,您可以通過以下方式擷取協助:

  • Troubleshoot中複製異常中的RequestId進行異常診斷,擷取異常產生的原因及其解決方案。更多資訊,請參見OpenAPI錯誤診斷

  • 根據異常中的錯誤碼,請在相應產品的協助中心文檔中尋找解決方案。例如,關於Elastic Compute Service的錯誤碼,請參見公用錯誤碼

  • 常見問題中查看是否有對應的解決方案。

  • 聯絡我們協助解決。