Todos los productos
Search
Centro de documentos

Alibaba Cloud SDK:Manejo de excepciones

Última actualización: Sep 05, 2026

Alibaba Cloud SDK V2.0 para Node.js genera tipos específicos de error cuando ocurren fallas de red o de negocio. Conozca los tipos de excepción y cómo manejarlos.

Alibaba Cloud SDK V2.0 para Node.js genera a continuación los siguientes tipos de excepción:

  • UnretryableError: se produce por problemas de red. Se lanza después de alcanzar el número máximo de reintentos. Use err.data.lastRequest para obtener la información de la solicitud cuando ocurre el error.

  • ResponseError: se origina por errores de negocio. Utilice los siguientes parámetros para solucionarlos:

    • code: el código de error que devuelve la excepción.

    • message: el mensaje de error que devuelve la excepción, el cual incluye el ID de solicitud de la llamada a la API.

    • data: la información detallada del error que devuelve el servidor.

Código de ejemplo:

Importante

En este ejemplo, los mensajes de error se imprimen solo como referencia. En un entorno de producción, no ignore las excepciones. Implemente una propagación adecuada de excepciones, así como registros y reintentos, para garantizar la solidez y estabilidad del 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);
        }
    }
}