异常处理
更新时间:
V2.0 SDK将异常的种类进行了一定的细分,主要细分为以下几个Exception:
TeaUnretryableException:该异常主要是因为网络问题造成,一般是网络问题造成达到最大重试次数后抛出,可以通过
exception.getLastRequest
来查询错误发生时的请求信息。TeaException: 在SDK的请求中主要以业务报错为主的异常,该异常的示例中提供了三个参数为用户排查问题提供帮助:
code: OpenAPI业务报错的错误码。
message:OpenAPI业务报错的错误信息,其中会包含本次请求的RequestId。
data:OpenAPI报错后服务端返回的详细信息。
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using Tea;
using Tea.Utils;
namespace AlibabaCloud.SDK.Sample
{
public class Sample
{
/**
* 使用AK&SK初始化账号Client
* @param accessKeyId
* @param accessKeySecret
* @return Client
* @throws Exception
*/
public static AlibabaCloud.SDK.Ecs20140526.Client CreateClient()
{
AlibabaCloud.OpenApiClient.odels.Config config = new AlibabaCloud.OpenApiClient.Models.Config
{
// 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。
AccessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
// 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
AccessKeySecret = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
};
config.Endpoint = "ecs.cn-qingdao.aliyuncs.com";
return new AlibabaCloud.SDK.Ecs20140526.Client(config);
}
public static void Main(string[] args)
{
AlibabaCloud.SDK.Ecs20140526.Client client = CreateClient();
AlibabaCloud.SDK.Ecs20140526.Models.DescribeInstancesRequest describeInstancesRequest = new AlibabaCloud.SDK.Ecs20140526.Models.DescribeInstancesRequest
{
RegionId = "cn-qingdao",
};
AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
try
{
client.DescribeInstancesWithOptions(describeInstancesRequest, runtime);
}
catch (TeaException error)
{
// 错误 message
Console.WriteLine(error.Message);
// 诊断地址
Console.WriteLine(error.Data["Recommend"]);
AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
}
catch (Exception _error)
{
TeaException error = new TeaException(new Dictionary<string, object>
{
{ "message", _error.Message }
});
// 错误 message
Console.WriteLine(error.Message);
// 诊断地址
Console.WriteLine(error.Data["Recommend"]);
AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
}
}
}
}
文档内容是否对您有帮助?