Todos os produtos
Search
Central de documentação

Alibaba Cloud SDK:Handle exceptions

Última atualização: Jun 28, 2026

Configure o parâmetro codes para definir quais códigos de resposta da API o SDK considera bem-sucedidos e suprimir exceções em respostas não 200 esperadas.

Por padrão, o SDK V1.0 para Node.js lança uma exceção sempre que uma chamada de API retorna um código de resposta diferente de 200, OK, Success ou success. Use o parâmetro codes na configuração do cliente para estender esse conjunto de sucesso. O SDK trata qualquer código adicionado a codes como bem-sucedido e não lança exceção para essa resposta.

Como funciona

Após a conclusão de uma operação de API, o SDK verifica o campo Code da resposta com base no conjunto de sucesso configurado:

  • Nenhuma exceção lançada: O Code da resposta é 200, OK, Success, success ou qualquer valor especificado em codes.

  • Exceção lançada: O Code da resposta tem qualquer outro valor.

Use codes quando um código de resposta específico for um resultado esperado da lógica de negócios. Por exemplo, uma resposta de endpoint não suportado que você prefere tratar no código da aplicação em vez de gerar uma exceção do SDK.

Configurar o parâmetro codes

Passe um array de códigos de resposta para a opção codes ao criar a instância de RPCClient. O exemplo a seguir adiciona InvalidOperation.NotSupportedEndpoint ao conjunto de sucesso. Assim, o SDK não lança exceção quando o ECS retorna esse código.

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

const client = new RPCClient({
    // Obtain the AccessKey ID of the Resource Access Management (RAM) user from environment variables.
    accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
    // Obtain the AccessKey secret of the RAM user from environment variables.
    accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET,
    endpoint: 'https://ecs.cn-beijing.aliyuncs.com',
    apiVersion: '2014-05-26',
    // Throw an exception if the response code is not 200, OK, Success, success, or a value of the codes parameter.
    // The value of the codes parameter in this example is for reference only. Specify this parameter based on your business requirements.
    codes: ['InvalidOperation.NotSupportedEndpoint'],
});

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

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

Com essa configuração, uma chamada de DescribeInstances que retorne InvalidOperation.NotSupportedEndpoint resolve a Promise normalmente, e o manipulador .then() recebe o resultado. O SDK ainda lança exceção para qualquer outro código inesperado. Portanto, apenas os códigos listados explicitamente são suprimidos.