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

Alibaba Cloud SDK:例外の処理

最終更新日:May 14, 2025

このトピックでは、Node.js 用 Alibaba Cloud SDK V2.0 の例外の種類と例外の処理方法について説明します。

Alibaba Cloud SDK V2.0 for Node.js の使用時に例外が発生した場合、エラーがスローされます。例外は、次のタイプに分類できます。

  • UnretryableError: このタイプの例外は、ネットワークの問題が原因で発生します。リトライ回数が上限に達すると、UnretryableError がスローされます。err.data.lastRequest を使用して、例外発生時のリクエスト情報を取得できます。

  • ResponseError: このタイプの例外は、ビジネスエラーが原因で発生します。エラーのトラブルシューティングのために、次の 3 つのパラメーターが提供されます。

    • code: 例外発生時に返されるエラーコード。

    • message: 例外発生時に返されるエラーメッセージ。メッセージには、例外がスローされた API リクエストの ID が含まれています。

    • data: 例外に対してサーバーから返される詳細なエラー情報。

サンプルコード:

重要

この例では、エラーメッセージは参照用にのみ出力されます。実際のビジネスシナリオでは、例外を慎重に処理し、プロジェクトで例外を無視しないでください。適切な方法で例外を伝播する、ログを記録する、リトライを実行するなど、例外を処理するための合理的な対策を講じることをお勧めします。これは、システムの堅牢性と安定性を確保するのに役立ちます。

const { default: Ecs20140526, DescribeRegionsRequest } = require('@alicloud/ecs20140526');
const { Config } = require('@alicloud/openapi-client');
const { RuntimeOptions } = require('@alicloud/tea-util');
async function main() {
    const config = new Config({
        // RAM ユーザーの AccessKey ID を環境変数から取得します。
        accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
        // RAM ユーザーの AccessKey シークレットを環境変数から取得します。
        accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET,
        // リージョン ID。
        regionId: 'cn-beijing',
    });
    const client = new Ecs20140526(config);
    const request = new DescribeRegionsRequest({
        instanceChargeType: "PrePaid",
    });
    // RuntimeOptions インスタンスを作成し、ランタイムパラメーターを設定します。
    const runtime = new RuntimeOptions();
    try {
        const resp = await client.describeRegionsWithOptions(request, runtime);
        console.log(resp.headers);
        console.log(resp.body);
    } catch (err) {
        // 実際のビジネスシナリオに基づいて例外を慎重に処理し、プロジェクトで例外を無視しないでください。この例に表示されているエラーメッセージは参照用です。
        console.log(err.code);
        console.log(err.message);
        console.log(err.data);
    }
}

main();
import Ecs20140526, * as $Ecs20140526 from '@alicloud/ecs20140526';
import * as $OpenApi from '@alicloud/openapi-client';
import * as $Util from '@alicloud/tea-util';

export default class Client {
    static async main(): Promise<void> {
        const config = new $OpenApi.Config({
            // RAM ユーザーの AccessKey ID を環境変数から取得します。
            accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
            // RAM ユーザーの AccessKey シークレットを環境変数から取得します。
            accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET,
            // アクセスするリージョン。
            regionId: 'cn-beijing',
        });
        const client = new Ecs20140526(config);
        const request = new $Ecs20140526.DescribeRegionsRequest({
            instanceChargeType: "PrePaid",
        });
        // RuntimeOptions インスタンスを作成し、ランタイムパラメーターを設定します。
        const runtime = new $Util.RuntimeOptions();
        try {
            const resp = await client.describeRegionsWithOptions(request, runtime);
            console.log(resp.headers);
            console.log(resp.body);
        } catch (err) {
            // 実際のビジネスシナリオに基づいて例外を慎重に処理し、プロジェクトで例外を無視しないでください。この例に表示されているエラーメッセージは参照用です。
            console.log(err.code);
            console.log(err.message);
            console.log(err.data);
        }
    }
}