azure - 如何捕获 azure 的限制异常?
问题描述
我有以下代码将 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 这样的特殊错误类?或者你能推荐另一种处理这种异常状态的方法吗?
解决方案
你可以试试 StorageException,所有的异常都可以在这里找到:common error,blob error。
而对于节流,它的错误代码是 503 根据这个doc ->Throttling/ServerBusy
部分。
因此,您可以编写如下代码:
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);
}
推荐阅读
- powershell - Powershell从变量运行命令
- angular - 使用 AOT(--prod) 构建的 Angular cli 在单击 mat-autocomplete 或任何其他材料元素时在运行时引发错误
- python - 具有从配置文件读取 configparser 的单元测试 python 代码
- javascript - 反应:动态行失败
- python - 无法在我的 Raspberry Pi 上使用 pip 安装 Flask
- angular - Angular 2+:Primeng 风格在 angular-cli 构建/部署的应用程序中不起作用
- c# - ListCollectionView.CustomSort 是否使用稳定的排序?
- xcode - iOS 设备不允许打开分发证书未过期或未撤销的应用程序
- php - 在 foreach 循环中选择特定的 id
- iis - 在 IIS 中部署后的 okta 400