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