我正在从 WindowsAzure.StorageClient 1.7 迁移到 WindowsAzure.Storage 2.0,我现在正在处理异常的管理。遵循本指南和其他来源,我发现我必须从
try
{
// Something
}
catch (StorageClientException e)
{
switch (e.ErrorCode)
{
case StorageErrorCode.ContainerNotFound:
case StorageErrorCode.ResourceNotFound:
case StorageErrorCode.BlobNotFound:
case StorageErrorCode.ConditionFailed:
// Do something
}
}
至
try
{
// Something
}
catch (StorageException e)
{
switch (e.RequestInformation.ExtendedErrorInformation.ErrorCode)
{
case StorageErrorCodeStrings.ContainerNotFound:
case StorageErrorCodeStrings.ResourceNotFound:
case BlobErrorCodeStrings.BlobNotFound:
case StorageErrorCodeStrings.ConditionNotMet:
// Do something
}
}
看起来很简单。问题是 ExtendedErrorInformation 总是等于 null。HttpStatusMessage 反而说“指定的 blob 不存在。”,因为它应该。
我以为是测试环境的模拟器造成的,但是在真实的 Azure 环境中尝试,却把我逼到了同样的境地。
任何想法?