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

Alibaba Cloud SDK:例外の処理

最終更新日:Jan 15, 2025

Node.js用 SDK V1.0 では、codes パラメーターを設定することで、API 呼び出しの例外処理ロジックを制御できます。API オペレーションを呼び出すと、システムはレスポンスの Code パラメーターを自動的にチェックします。Code パラメーターの値が、クライアント設定で codes パラメーターに指定した値と一致する場合、または 200OKSuccesssuccess のいずれかである場合、例外はスローされません。それ以外の場合、例外がスローされます。

たとえば、codes パラメーターに InvalidOperation.NotSupportedEndpoint を指定したとします。この場合、API オペレーションのレスポンスの Code パラメーターの値が InvalidOperation.NotSupportedEndpoint であれば、プログラムはこれを例外とは見なさないため、オペレーションは中断されません。指定されたタイプの例外はサイレント処理されます。これは、コードの堅牢性とコードロジックの制御性を向上させるのに役立ちます。この方法を使用すると、より正確に例外を処理し、API オペレーションのさまざまなレスポンスを処理する際にアプリケーションの柔軟性を高めることができます。

const RPCClient = require('@alicloud/pop-core').RPCClient;


const client = new RPCClient({
    // 環境変数からResource Access Management (RAM) ユーザーの AccessKey ID を取得します。
    accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
    // 環境変数からRAMユーザーの AccessKey シークレットを取得します。
    accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET,
    endpoint: 'https://ecs.cn-beijing.aliyuncs.com',
    apiVersion: '2014-05-26',
    // レスポンスコードが 200、OK、Success、success、または codes パラメーターの値でない場合に例外をスローします。
    // この例の codes パラメーターの値は参照用です。ビジネス要件に基づいてこのパラメーターを指定します。
    codes: ['InvalidOperation.NotSupportedEndpoint'],
});

const params = {
    RegionId: 'cn-beijing',
};
const action = 'DescribeInstances';

client.request(action, params).then((result) => {
    console.log(JSON.stringify(result));
});