<PackageReference Include="Azure.Storage.Blobs" Version="12.23.0" />

Errors

class Errors
Create exceptions for common error cases.
using System; using System.Globalization; using System.IO; using System.Linq; using System.Runtime.CompilerServices; using System.Security.Authentication; using System.Security.Cryptography; namespace Azure.Storage { internal class Errors { public static class ClientSideEncryption { public static ArgumentException UnrecognizedVersion() { return new ArgumentException("Unrecognized ClientSideEncryptionVersion"); } public static InvalidOperationException ClientSideEncryptionVersionNotSupported(string versionString = null) { return new InvalidOperationException(("This library does not support the given version of client-side encryption." + versionString == null) ? "" : (" Version ID = " + versionString)); } public static InvalidOperationException TypeNotSupported(Type type) { return new InvalidOperationException("Client-side encryption is not supported for type \"" + type.FullName + "\". Please use a supported client type or create this client without specifying client-side encryption options."); } public static InvalidOperationException MissingRequiredEncryptionResources(params string[] resourceNames) { return new InvalidOperationException("Cannot encrypt without specifying " + string.Join(",", resourceNames.AsEnumerable())); } public static ArgumentException KeyNotFound(string keyId) { return new ArgumentException("Resolution of id " + keyId + " returned null."); } public static ArgumentException BadEncryptionAgent(string agent) { return new ArgumentException("Invalid Encryption Agent. This version of the client library does not understandthe Encryption Agent protocol \"" + agent + "\" set on the blob."); } public static ArgumentException BadEncryptionAlgorithm(string algorithm) { return new ArgumentException("Invalid Encryption Algorithm \"" + algorithm + "\" found on the resource. This version of the clientlibrary does not support the given encryption algorithm."); } public static InvalidOperationException MissingEncryptionMetadata(string field) { return new InvalidOperationException("Missing field \"" + field + "\" in encryption metadata"); } } public static ArgumentException AccountMismatch(string accountNameCredential, string accountNameValue) { return new ArgumentException(string.Format(CultureInfo.CurrentCulture, "Account Name Mismatch: {0} != {1}", accountNameCredential, accountNameValue)); } public static InvalidOperationException AccountSasMissingData() { return new InvalidOperationException("Account SAS is missing at least one of these: ExpiryTime, Permissions, Service, or ResourceType"); } public static ArgumentNullException ArgumentNull(string paramName) { return new ArgumentNullException(paramName); } public static ArgumentException InvalidArgument(string paramName) { return new ArgumentException(paramName + " is invalid"); } public static ArgumentException InvalidResourceType(char s) { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(25, 1); defaultInterpolatedStringHandler.AppendLiteral("Invalid resource type: '"); defaultInterpolatedStringHandler.AppendFormatted(s); defaultInterpolatedStringHandler.AppendLiteral("'"); return new ArgumentException(defaultInterpolatedStringHandler.ToStringAndClear()); } public static InvalidOperationException TaskIncomplete() { return new InvalidOperationException("Task is not completed"); } public static FormatException InvalidFormat(string err) { return new FormatException(err); } public static ArgumentException ParsingConnectionStringFailed() { return new ArgumentException("Connection string parsing error"); } public static ArgumentOutOfRangeException InvalidSasProtocol(string protocol, string sasProtocol) { return new ArgumentOutOfRangeException(protocol, "Invalid " + sasProtocol + " value"); } public static ArgumentException InvalidService(char s) { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(19, 1); defaultInterpolatedStringHandler.AppendLiteral("Invalid service: '"); defaultInterpolatedStringHandler.AppendFormatted(s); defaultInterpolatedStringHandler.AppendLiteral("'"); return new ArgumentException(defaultInterpolatedStringHandler.ToStringAndClear()); } public static ArgumentException InsufficientStorageTransferOptions(long streamLength, long statedMaxBlockSize, long necessaryMinBlockSize) { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(147, 3); defaultInterpolatedStringHandler.AppendLiteral("Cannot upload "); defaultInterpolatedStringHandler.AppendFormatted(streamLength); defaultInterpolatedStringHandler.AppendLiteral(" bytes with a maximum transfer size of "); defaultInterpolatedStringHandler.AppendFormatted(statedMaxBlockSize); defaultInterpolatedStringHandler.AppendLiteral(" bytes per block. Please increase the StorageTransferOptions.MaximumTransferSize to at least "); defaultInterpolatedStringHandler.AppendFormatted(necessaryMinBlockSize); defaultInterpolatedStringHandler.AppendLiteral("."); return new ArgumentException(defaultInterpolatedStringHandler.ToStringAndClear()); } public static InvalidDataException HashMismatch(string hashHeaderName) { return new InvalidDataException(hashHeaderName + " did not match hash of recieved data."); } public static InvalidDataException ChecksumMismatch(ReadOnlySpan<byte> left, ReadOnlySpan<byte> right) { return new InvalidDataException("Compared checksums did not match. Invalid data may have been written to the destination. Left: " + Convert.ToBase64String(left, Base64FormattingOptions.None) + " Right: " + Convert.ToBase64String(right, Base64FormattingOptions.None)); } public static InvalidDataException HashMismatchOnStreamedDownload(string mismatchedRange) { return new InvalidDataException("Detected invalid data while streaming to the destination. Range " + mismatchedRange + " produced mismatched checksum."); } public static ArgumentException PrecalculatedHashNotSupportedOnSplit() { return new ArgumentException("Precalculated checksum not supported when potentially partitioning an upload."); } public static ArgumentException CannotDeferTransactionalHashVerification() { return new ArgumentException("Cannot defer transactional hash verification. Returned hash is unavailable to caller."); } public static ArgumentException CannotInitializeWriteStreamWithData() { return new ArgumentException("Initialized buffer for StorageWriteStream must be empty."); } internal static void VerifyStreamPosition(Stream stream, string streamName) { if (stream != null && stream.CanSeek && stream.Length > 0 && stream.Position >= stream.Length) { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(71, 6); defaultInterpolatedStringHandler.AppendFormatted(streamName); defaultInterpolatedStringHandler.AppendLiteral("."); defaultInterpolatedStringHandler.AppendFormatted("Position"); defaultInterpolatedStringHandler.AppendLiteral(" must be less than "); defaultInterpolatedStringHandler.AppendFormatted(streamName); defaultInterpolatedStringHandler.AppendLiteral("."); defaultInterpolatedStringHandler.AppendFormatted("Length"); defaultInterpolatedStringHandler.AppendLiteral(". Please set "); defaultInterpolatedStringHandler.AppendFormatted(streamName); defaultInterpolatedStringHandler.AppendLiteral("."); defaultInterpolatedStringHandler.AppendFormatted("Position"); defaultInterpolatedStringHandler.AppendLiteral(" to the start of the data to upload."); throw new ArgumentException(defaultInterpolatedStringHandler.ToStringAndClear()); } } public static void ThrowIfParamNull(object obj, string paramName) { if (obj == null) throw new ArgumentNullException("Param: \"" + paramName + "\" is null"); } internal static void CheckCryptKeySize(int keySizeInBytes) { if (keySizeInBytes != 16 && keySizeInBytes != 24 && keySizeInBytes != 32) throw new CryptographicException("Specified key is not a valid size for this algorithm."); } public static CryptographicException CryptographyAuthTagMismatch() { throw new CryptographicException("The computed authentication tag did not match the input authentication tag."); } public static ArgumentException CryptographyPlaintextCiphertextLengthMismatch() { throw new ArgumentException("Plaintext and ciphertext must have the same length."); } public static ArgumentException CryptographyInvalidNonceLength() { throw new ArgumentException("The specified nonce is not a valid size for this algorithm."); } public static ArgumentException CryptographyInvalidTagLength() { throw new ArgumentException("The specified tag is not a valid size for this algorithm."); } public static ArgumentException CannotBothBeNotNull(string param0, string param1) { return new ArgumentException(param0 + " and " + param1 + " cannot both be set"); } public static ArgumentOutOfRangeException MustBeGreaterThanOrEqualTo(string paramName, long value) { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(39, 1); defaultInterpolatedStringHandler.AppendLiteral("Value must be greater than or equal to "); defaultInterpolatedStringHandler.AppendFormatted(value); return new ArgumentOutOfRangeException(paramName, defaultInterpolatedStringHandler.ToStringAndClear()); } public static ArgumentOutOfRangeException MustBeLessThanOrEqualTo(string paramName, long value) { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(36, 1); defaultInterpolatedStringHandler.AppendLiteral("Value must be less than or equal to "); defaultInterpolatedStringHandler.AppendFormatted(value); return new ArgumentOutOfRangeException(paramName, defaultInterpolatedStringHandler.ToStringAndClear()); } public static ArgumentOutOfRangeException MustBeBetweenInclusive(string paramName, long lower, long upper, long actual) { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(43, 3); defaultInterpolatedStringHandler.AppendLiteral("Value must be between "); defaultInterpolatedStringHandler.AppendFormatted(lower); defaultInterpolatedStringHandler.AppendLiteral(" and "); defaultInterpolatedStringHandler.AppendFormatted(upper); defaultInterpolatedStringHandler.AppendLiteral(" inclusive, not "); defaultInterpolatedStringHandler.AppendFormatted(actual); return new ArgumentOutOfRangeException(paramName, defaultInterpolatedStringHandler.ToStringAndClear()); } public static ArgumentOutOfRangeException MustBeGreaterThanValueOrEqualToOtherValue(string paramName, long value0, long value1) { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(40, 2); defaultInterpolatedStringHandler.AppendLiteral("Value must be greater than "); defaultInterpolatedStringHandler.AppendFormatted(value0); defaultInterpolatedStringHandler.AppendLiteral(" or equal to "); defaultInterpolatedStringHandler.AppendFormatted(value1); return new ArgumentOutOfRangeException(paramName, defaultInterpolatedStringHandler.ToStringAndClear()); } public static ArgumentException StreamMustBeReadable(string paramName) { return new ArgumentException("Stream must be readable", paramName); } public static InvalidOperationException StreamMustBeAtPosition0() { return new InvalidOperationException("Stream must be set to position 0"); } public static InvalidOperationException TokenCredentialsRequireHttps() { return new InvalidOperationException("Use of token credentials requires HTTPS"); } public static ArgumentException SasCredentialRequiresUriWithoutSas<TUriBuilder>(Uri uri) { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(180, 5); defaultInterpolatedStringHandler.AppendLiteral("You cannot use "); defaultInterpolatedStringHandler.AppendFormatted("AzureSasCredential"); defaultInterpolatedStringHandler.AppendLiteral(" when the resource URI also contains a Shared Access Signature: "); defaultInterpolatedStringHandler.AppendFormatted(uri); defaultInterpolatedStringHandler.AppendLiteral("\n"); defaultInterpolatedStringHandler.AppendLiteral("You can remove the shared access signature by creating a "); defaultInterpolatedStringHandler.AppendFormatted(typeof(TUriBuilder).Name); defaultInterpolatedStringHandler.AppendLiteral(", setting "); defaultInterpolatedStringHandler.AppendFormatted(typeof(TUriBuilder).Name); defaultInterpolatedStringHandler.AppendLiteral(".Sas to null,"); defaultInterpolatedStringHandler.AppendLiteral(" and calling "); defaultInterpolatedStringHandler.AppendFormatted(typeof(TUriBuilder).Name); defaultInterpolatedStringHandler.AppendLiteral(".ToUri."); return new ArgumentException(defaultInterpolatedStringHandler.ToStringAndClear()); } public static InvalidOperationException SasMissingData(string paramName) { return new InvalidOperationException("SAS is missing required parameter: " + paramName); } public static InvalidOperationException SasDataNotAllowed(string paramName, string paramNameNotAllowed) { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(61, 2); defaultInterpolatedStringHandler.AppendLiteral("SAS cannot have the "); defaultInterpolatedStringHandler.AppendFormatted(paramNameNotAllowed); defaultInterpolatedStringHandler.AppendLiteral(" parameter when the "); defaultInterpolatedStringHandler.AppendFormatted(paramName); defaultInterpolatedStringHandler.AppendLiteral(" parameter is present"); return new InvalidOperationException(defaultInterpolatedStringHandler.ToStringAndClear()); } public static InvalidOperationException SasDataInConjunction(string paramName, string paramName2) { return new InvalidOperationException("SAS cannot have the following parameters specified in conjunction: " + paramName + ", " + paramName2); } public static InvalidOperationException SasNamesNotMatching(string builderParam, string builderName, string clientParam) { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(117, 6); defaultInterpolatedStringHandler.AppendLiteral("SAS Uri cannot be generated. "); defaultInterpolatedStringHandler.AppendFormatted(builderName); defaultInterpolatedStringHandler.AppendLiteral("."); defaultInterpolatedStringHandler.AppendFormatted(builderParam); defaultInterpolatedStringHandler.AppendLiteral(" does not match "); defaultInterpolatedStringHandler.AppendFormatted(clientParam); defaultInterpolatedStringHandler.AppendLiteral(" in the Client. "); defaultInterpolatedStringHandler.AppendFormatted(builderName); defaultInterpolatedStringHandler.AppendLiteral("."); defaultInterpolatedStringHandler.AppendFormatted(builderParam); defaultInterpolatedStringHandler.AppendLiteral(" must either be left empty or match the "); defaultInterpolatedStringHandler.AppendFormatted(clientParam); defaultInterpolatedStringHandler.AppendLiteral(" in the Client"); return new InvalidOperationException(defaultInterpolatedStringHandler.ToStringAndClear()); } public static InvalidOperationException SasNamesNotMatching(string builderParam, string builderName) { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(167, 4); defaultInterpolatedStringHandler.AppendLiteral("SAS Uri cannot be generated. "); defaultInterpolatedStringHandler.AppendFormatted(builderName); defaultInterpolatedStringHandler.AppendLiteral("."); defaultInterpolatedStringHandler.AppendFormatted(builderParam); defaultInterpolatedStringHandler.AppendLiteral(" does not match snapshot value in the URI in the Client. "); defaultInterpolatedStringHandler.AppendFormatted(builderName); defaultInterpolatedStringHandler.AppendLiteral("."); defaultInterpolatedStringHandler.AppendFormatted(builderParam); defaultInterpolatedStringHandler.AppendLiteral(" must either be left empty or match the snapshot value in the URI in the Client"); return new InvalidOperationException(defaultInterpolatedStringHandler.ToStringAndClear()); } public static InvalidOperationException SasServiceNotMatching(string builderParam, string builderName, string expectedService) { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(121, 6); defaultInterpolatedStringHandler.AppendLiteral("SAS Uri cannot be generated. "); defaultInterpolatedStringHandler.AppendFormatted(builderName); defaultInterpolatedStringHandler.AppendLiteral("."); defaultInterpolatedStringHandler.AppendFormatted(builderParam); defaultInterpolatedStringHandler.AppendLiteral(" does specify "); defaultInterpolatedStringHandler.AppendFormatted(expectedService); defaultInterpolatedStringHandler.AppendLiteral(". "); defaultInterpolatedStringHandler.AppendFormatted(builderName); defaultInterpolatedStringHandler.AppendLiteral("."); defaultInterpolatedStringHandler.AppendFormatted(builderParam); defaultInterpolatedStringHandler.AppendLiteral(" must either specify "); defaultInterpolatedStringHandler.AppendFormatted(expectedService); defaultInterpolatedStringHandler.AppendLiteral(" or specify all Services are accessible in the value."); return new InvalidOperationException(defaultInterpolatedStringHandler.ToStringAndClear()); } public static InvalidOperationException SasClientMissingData(string paramName) { return new InvalidOperationException("SAS Uri cannot be generated. " + paramName + " in the client has not been set"); } public static InvalidOperationException SasBuilderEmptyParam(string builderName, string paramName, string sasType) { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(62, 3); defaultInterpolatedStringHandler.AppendLiteral("SAS Uri cannot be generated. "); defaultInterpolatedStringHandler.AppendFormatted(builderName); defaultInterpolatedStringHandler.AppendLiteral("."); defaultInterpolatedStringHandler.AppendFormatted(paramName); defaultInterpolatedStringHandler.AppendLiteral(" cannot be set to create a "); defaultInterpolatedStringHandler.AppendFormatted(sasType); defaultInterpolatedStringHandler.AppendLiteral(" SAS."); return new InvalidOperationException(defaultInterpolatedStringHandler.ToStringAndClear()); } public static InvalidOperationException SasIncorrectResourceType(string builderName, string builderParam, string value, string clientName) { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(101, 4); defaultInterpolatedStringHandler.AppendLiteral("SAS Uri cannot be generated. Expected "); defaultInterpolatedStringHandler.AppendFormatted(builderName); defaultInterpolatedStringHandler.AppendLiteral("."); defaultInterpolatedStringHandler.AppendFormatted(builderParam); defaultInterpolatedStringHandler.AppendLiteral(" to be set to "); defaultInterpolatedStringHandler.AppendFormatted(value); defaultInterpolatedStringHandler.AppendLiteral(" to generate "); defaultInterpolatedStringHandler.AppendLiteral("the respective SAS for the client, "); defaultInterpolatedStringHandler.AppendFormatted(clientName); return new InvalidOperationException(defaultInterpolatedStringHandler.ToStringAndClear()); } public static ArgumentException InvalidPermission(char s) { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(22, 1); defaultInterpolatedStringHandler.AppendLiteral("Invalid permission: '"); defaultInterpolatedStringHandler.AppendFormatted(s); defaultInterpolatedStringHandler.AppendLiteral("'"); return new ArgumentException(defaultInterpolatedStringHandler.ToStringAndClear()); } public static ArgumentException ParsingHttpRangeFailed() { return new ArgumentException("Could not parse the serialized range."); } public static AccessViolationException UnableAccessArray() { return new AccessViolationException("Unable to get array from memory pool"); } public static NotImplementedException NotImplemented() { return new NotImplementedException(); } public static AuthenticationException InvalidCredentials(string fullName) { return new AuthenticationException("Cannot authenticate credentials with " + fullName); } public static ArgumentException SeekOutsideBufferRange(long index, long inclusiveRangeStart, long exclusiveRangeEnd) { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(61, 3); defaultInterpolatedStringHandler.AppendLiteral("Tried to seek ouside buffer range. Gave index "); defaultInterpolatedStringHandler.AppendFormatted(index); defaultInterpolatedStringHandler.AppendLiteral(", range is ["); defaultInterpolatedStringHandler.AppendFormatted(inclusiveRangeStart); defaultInterpolatedStringHandler.AppendLiteral(","); defaultInterpolatedStringHandler.AppendFormatted(exclusiveRangeEnd); defaultInterpolatedStringHandler.AppendLiteral(")."); return new ArgumentException(defaultInterpolatedStringHandler.ToStringAndClear()); } public static ArgumentException VersionNotSupported(string paramName) { return new ArgumentException("The version specified by " + paramName + " is not supported by this library."); } public static RequestFailedException ClientRequestIdMismatch(Response response, string echo, string original) { int status = response.get_Status(); DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(87, 2); defaultInterpolatedStringHandler.AppendLiteral("Response x-ms-client-request-id '"); defaultInterpolatedStringHandler.AppendFormatted(echo); defaultInterpolatedStringHandler.AppendLiteral("' does not match the original expected request id, '"); defaultInterpolatedStringHandler.AppendFormatted(original); defaultInterpolatedStringHandler.AppendLiteral("'."); return new RequestFailedException(status, defaultInterpolatedStringHandler.ToStringAndClear(), (Exception)null); } public static ArgumentException TransactionalHashingNotSupportedWithClientSideEncryption() { return new ArgumentException("Client-side encryption and transactional hashing are not supported at the same time."); } public static void VerifyHttpsTokenAuth(Uri uri) { if (uri.Scheme != "https") throw new ArgumentException("Cannot use TokenCredential without HTTPS."); } } }