как захватить исключения для лазури? - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть следующий код, который загружает большой двоичный объект в 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?Или вы можете порекомендовать другой способ обработки этого состояния исключения?

1 Ответ

0 голосов
/ 20 декабря 2018

Вы можете попробовать StorageException, все исключения можно найти здесь: общая ошибка , ошибка BLOB-объекта .

А для регулирования это код ошибкисоставляет 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...