すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud SDK:例外処理

最終更新日:Nov 09, 2025

このトピックでは、V2.0 SDK の例外タイプとその処理方法について説明します。

例外タイプ

例外タイプ

説明

推奨される操作

UnretryableException

ネットワークの問題によって発生する例外です。この例外は通常、ネットワークの問題が原因で最大リトライ回数に達したときにスローされます。

  1. プログラムの実行環境でネットワークの問題を確認します。

  2. ネットワークが正常に動作している場合は、タイムアウト期間を長くしてリトライします。

ClientException

クライアント例外です。HTTP ステータスコードは 400 から 499 の範囲です。この例外は、無効なリクエストパラメーター、認証の失敗、権限の不足などの問題によって発生する可能性があります。

トラブルシューティングで、例外から RequestId をコピーしてエラーを診断します。次に、提供されたソリューションに基づいてエラーを処理します。

ServerException

サーバー例外です。HTTP ステータスコードは 500 から 599 の範囲です。この例外は、内部サーバーエラーや利用不可能なサービスなど、Alibaba Cloud 側のサーバーサイドの問題を示します。

操作をリトライします。複数回リトライしても問題が解決しない場合は、お問い合わせください。

ThrottlingException

スロットリング例外です。この例外は、API 呼び出しが Alibaba Cloud のスロットリングメカニズムをトリガーしたときにスローされます。

API ドキュメントのスロットリング制限に準拠するように API 呼び出しの頻度を調整します。

「ClientException」、「ServerException」、および「ThrottlingException」は、問題のトラブルシューティングに役立つ次のパラメーターを提供します。

  • request_id: リクエストの一意の識別子。

  • status_code: OpenAPI によって返される HTTP ステータスコード。

  • code: OpenAPI によって返されるエラーコード。

  • message: OpenAPI によって返されるエラーメッセージ。

  • data: エラー発生時にサーバーから返される詳細情報。

サンプルコード:

重要

この例では、エラーメッセージは参照用にのみ表示されます。実際のビジネスシナリオでは、プロジェクト内の例外を無視しないでください。例外の報告、ログの記録、リトライの実行などの操作を行って例外を適切に処理することをお勧めします。これにより、システムの堅牢性と安定性が確保されます。

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

'''Elastic Compute Service の例'''
# 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 を呼び出すときに例外が発生した場合は、次の方法でヘルプを得ることができます。