Conheça os tipos de exceção do SDK V2.0 e como tratá-los.
Tipos de exceção
O SDK V2.0 classifica as exceções nos seguintes tipos:
TeaUnretryableException: ocorre quando problemas de rede persistem após o esgotamento de todas as tentativas de nova execução. Chame
exception.getLastRequestpara inspecionar a solicitação com falha.-
TeaException: indica um erro de negócio. Use estes parâmetros para solucionar o problema:
code: código de erro de negócio da OpenAPI.
message: mensagem de erro, que inclui o RequestId.
data: informações detalhadas sobre o erro retornadas pelo servidor.
Este exemplo apenas imprime a saída para fins de demonstração. Em produção, trate as exceções adequadamente: propague-as, registre-as em log ou tente uma recuperação para garantir a estabilidade do sistema.
import com.aliyun.ecs20140526.models.DescribeRegionsRequest;
import com.aliyun.tea.TeaException;
import com.aliyun.tea.TeaUnretryableException;
import com.aliyun.tea.ValidateException;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teautil.models.RuntimeOptions;
public class Sample {
public static void main(String[] args) throws Exception {
Config config = new com.aliyun.teaopenapi.models.Config();
// Get the AccessKey ID of the RAM user from an environment variable.
config.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"));
// Get the AccessKey secret of the RAM user from an environment variable.
config.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// The region ID.
config.setRegionId("<regionId>");
com.aliyun.ecs20140526.Client client = new com.aliyun.ecs20140526.Client(config);
DescribeRegionsRequest describeRegionsRequest = new DescribeRegionsRequest();
try {
client.describeRegions(describeRegionsRequest);
} catch(TeaUnretryableException ue) {
// This is for demonstration only. Handle exceptions with caution and do not ignore them in your project.
ue.printStackTrace();
// Print the error message.
System.out.println(ue.getMessage());
// Print the request record.
System.out.println(ue.getLastRequest());
} catch (TeaException e) {
// This is for demonstration only. Handle exceptions with caution and do not ignore them in your project.
e.printStackTrace();
// Print the error code.
System.out.println(e.getCode());
// Print the error message, which includes the RequestId.
System.out.println(e.getMessage());
// Print the specific content returned by the server.
System.out.println(e.getData());
}
}
}
Tratamento de exceções
Para solucionar exceções em chamadas de API:
Copie o RequestId da exceção e use o OpenAPI Diagnostics para identificar a causa. OpenAPI Diagnostics.
Consulte o código de erro na documentação do produto correspondente.
Verifique o FAQ para obter uma solução.
Entre em contato com o suporte técnico.