/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ using Amazon.Runtime.Internal.Transform; using System; #if !NETSTANDARD using System.Runtime.Serialization; #endif namespace Amazon.Runtime.Internal { #if !NETSTANDARD [Serializable] #endif public class HttpErrorResponseException : Exception { public IWebResponseData Response { get; private set; } public HttpErrorResponseException(IWebResponseData response) { this.Response = response; } public HttpErrorResponseException(string message, IWebResponseData response) : base(message) { this.Response = response; } public HttpErrorResponseException(string message, Exception innerException, IWebResponseData response) : base(message,innerException) { this.Response = response; } #if !NETSTANDARD /// /// Constructs a new instance of the HttpErrorResponseException class with serialized data. /// /// The that holds the serialized object data about the exception being thrown. /// The that contains contextual information about the source or destination. /// The parameter is null. /// The class name is null or is zero (0). protected HttpErrorResponseException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(info, context) { if (info != null) { this.Response = (IWebResponseData)info.GetValue("Response", typeof(IWebResponseData)); } } /// /// Sets the with information about the exception. /// /// The that holds the serialized object data about the exception being thrown. /// The that contains contextual information about the source or destination. /// The parameter is a null reference (Nothing in Visual Basic). [System.Security.SecurityCritical] [System.Security.Permissions.SecurityPermission( System.Security.Permissions.SecurityAction.LinkDemand, Flags = System.Security.Permissions.SecurityPermissionFlag.SerializationFormatter)] public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) { base.GetObjectData(info, context); if (info != null) { info.AddValue("Response", this.Response); } } #endif } }