我有以下代码将blob上传到Azure:
var cloudStorageAccount = await GetCloudStorageAccount(connectionString);
var blobClient = cloudStorageAccount.CreateCloudBlobClient();
var containerRef = blobClient.GetContainerReference(containerName);
var blobRef = containerRef.GetBlockBlobReference(fileName);
await blobRef.UploadTextAsync(fileContent);
我需要添加捕获限制异常的代码。例如,如果我的上述代码被循环调用,并且尝试写入的次数超过Azure中配置的限制,则将引发某些类型的429(请求过多)错误。我如何捕获该异常?有没有像AzureThrottleException这样的特殊错误类?还是可以推荐另一种处理此异常状态的方法?
答案 0 :(得分:0)
您可以尝试使用StorageException,所有异常都可以在这里找到:common error,blob error。
为了节流,根据此doc-> Throttling/ServerBusy
部分的错误代码为503。
因此,您可以编写如下代码:
try
{
//your code
}
catch(StorageException ex)
{
var errorcode = ex.RequestInformation.ErrorCode;
var statuscode = ex.RequestInformation.HttpStatusCode.ToString();
Console.WriteLine("the error code is: "+errorcode);
Console.WriteLine("the status code is: "+statuscode);
}