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.lastRequestpara 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:
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);
}
}
}