异常处理
更新时间:
本节主要介绍原版 SDK 的异常以及如何进行异常处理。
原版 SDK 的异常主要通过捕获 ServerException 和 ClientException 异常来获取错误信息,在原版 SDK 中如果没有请求到服务端则无法通过异常获取到 RequestId, 如果请求得到了服务端则能获取到 RequestId 这个属性,通过这个属性可以让阿里云的开发同学协助使用 OpenAPI 的开发者排查问题。
using System;
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Core.Exceptions;
using Aliyun.Acs.Ecs.Model.V20140526;
namespace AlibabaCloud.SDK.Sample
{
class Program
{
static void Main(string[] args)
{
// 构建一个 Client,用于发起请求
IClientProfile profile = DefaultProfile.GetProfile(
// 地域ID
"<your-region-id>",
// 从环境变量获取RAM账号的AccessKey ID
Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
// 从环境变量获取RAM账号的AccessKey ID
Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
DefaultAcsClient client = new DefaultAcsClient(profile);
try
{
// 构造请求
DescribeInstancesRequest request = new DescribeInstancesRequest();
request.PageSize = 10;
// 发起请求,并得到 Response
DescribeInstancesResponse response = client.GetAcsResponse(request);
System.Console.WriteLine(response.TotalCount);
}
catch (ServerException e)
{
System.Console.WriteLine(e.ToString());
// 这里可以添加您自己的错误处理逻辑
// 例如,打印具体的错误信息
Console.WriteLine("ErrorCode=" + e.ErrorCode);
Console.WriteLine("ErrorMessage=" + e.ErrorMessage);
// 如果遇上棘手问题,可以提交工单,并将RequestId提供给我们
Console.WriteLine("ErrorCode=" + e.RequestId);
}
catch (ClientException ex)
{
System.Console.WriteLine(ex.ToString());
// 这里可以添加您自己的错误处理逻辑
// 例如,打印具体的错误信息
Console.WriteLine("ErrorCode=" + ex.ErrorCode);
Console.WriteLine("ErrorMessage=" + ex.ErrorMessage);
}
}
}
}
文档内容是否对您有帮助?