Todos os produtos
Search
Central de documentação

Alibaba Cloud SDK:Tratamento de exceções

Última atualização: Jun 28, 2026

O Alibaba Cloud SDK V2.0 for Node.js gera tipos específicos de erro para falhas de rede e de negócios. Conheça os tipos de exceção e saiba como tratá-los.

O Alibaba Cloud SDK V2.0 for Node.js gera os seguintes tipos de exceção:

  • UnretryableError: resulta de problemas de rede. Ocorre após o sistema atingir o número máximo de tentativas. Use err.data.lastRequest para obter as informações da requisição no momento do erro.

  • ResponseError: decorre de erros de negócios. Utilize os parâmetros a seguir para solucionar o problema:

    • code: código de erro retornado pela exceção.

    • message: mensagem de erro retornada pela exceção, incluindo o ID da requisição da chamada de API.

    • data: informações detalhadas sobre o erro retornadas pelo servidor.

Código de exemplo:

Importante

Neste exemplo, as mensagens de erro são impressas apenas para referência. Em produção, não ignore exceções. Adote propagação adequada de exceções, registro em log e novas tentativas para garantir a robustez e a estabilidade do sistema.

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({
        // Obtain the AccessKey ID of the RAM user from an environment variable.
        accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
        // Obtain the AccessKey secret of the RAM user from an environment variable.
        accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET,
        // The region ID.
        regionId: 'cn-beijing',
    });
    const client = new Ecs20140526(config);
    const request = new DescribeRegionsRequest({
        instanceChargeType: "PrePaid",
    });
    // Create a RuntimeOptions instance and configure runtime parameters. 
    const runtime = new RuntimeOptions();
    try {
        const resp = await client.describeRegionsWithOptions(request, runtime);
        console.log(resp.headers);
        console.log(resp.body);
    } catch (err) {
        // Handle exceptions with caution based on your actual business scenario and do not ignore exceptions in your project. The error message displayed in this example is for reference only. 
        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({
            // Obtain the AccessKey ID of the RAM user from an environment variable.
            accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
            // Obtain the AccessKey secret of the RAM user from an environment variable.
            accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET,
            // The region that you want to access.
            regionId: 'cn-beijing',
        });
        const client = new Ecs20140526(config);
        const request = new $Ecs20140526.DescribeRegionsRequest({
            instanceChargeType: "PrePaid",
        });
        // Create a RuntimeOptions instance and configure runtime parameters. 
        const runtime = new $Util.RuntimeOptions();
        try {
            const resp = await client.describeRegionsWithOptions(request, runtime);
            console.log(resp.headers);
            console.log(resp.body);
        } catch (err) {
            // Handle exceptions with caution based on your actual business scenario and do not ignore exceptions in your project. The error message displayed in this example is for reference only. 
            console.log(err.code);
            console.log(err.message);
            console.log(err.data);
        }
    }
}