Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Server / System / Data / Services / DataServiceException.cs / 1305376 / DataServiceException.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Base class for exceptions thrown by the web data services. // // // @owner [....] //--------------------------------------------------------------------- namespace System.Data.Services { #region Namespaces. using System; using System.Diagnostics; using System.Globalization; using System.Runtime.Serialization; using System.Security.Permissions; #endregion Namespaces. ////// The exception that is thrown when an error occurs while processing /// a web data service request. /// ////// The DataServiceException is thrown to indicate an error during /// request processing, specifying the appropriate response for /// the request. /// /// RFC2616 about the status code values: /// 1xx: Informational - Request received, continuing process /// "100" ; Section 10.1.1: Continue /// "101" ; Section 10.1.2: Switching Protocols /// /// 2xx: Success - The action was successfully received, understood, and accepted /// "200" ; Section 10.2.1: OK /// "201" ; Section 10.2.2: Created /// "202" ; Section 10.2.3: Accepted /// "203" ; Section 10.2.4: Non-Authoritative Information /// "204" ; Section 10.2.5: No Content /// "205" ; Section 10.2.6: Reset Content /// "206" ; Section 10.2.7: Partial Content /// /// 3xx: Redirection - Further action must be taken in order to complete the request /// "300" ; Section 10.3.1: Multiple Choices /// "301" ; Section 10.3.2: Moved Permanently /// "302" ; Section 10.3.3: Found /// "303" ; Section 10.3.4: See Other /// "304" ; Section 10.3.5: Not Modified /// "305" ; Section 10.3.6: Use Proxy /// "307" ; Section 10.3.8: Temporary Redirect /// /// 4xx: Client Error - The request contains bad syntax or cannot be fulfilled /// "400" ; Section 10.4.1: Bad Request /// "401" ; Section 10.4.2: Unauthorized /// "402" ; Section 10.4.3: Payment Required /// "403" ; Section 10.4.4: Forbidden /// "404" ; Section 10.4.5: Not Found /// "405" ; Section 10.4.6: Method Not Allowed /// "406" ; Section 10.4.7: Not Acceptable /// "407" ; Section 10.4.8: Proxy Authentication Required /// "408" ; Section 10.4.9: Request Time-out /// "409" ; Section 10.4.10: Conflict /// "410" ; Section 10.4.11: Gone /// "411" ; Section 10.4.12: Length Required /// "412" ; Section 10.4.13: Precondition Failed /// "413" ; Section 10.4.14: Request Entity Too Large /// "414" ; Section 10.4.15: Request-URI Too Large /// "415" ; Section 10.4.16: Unsupported Media Type /// "416" ; Section 10.4.17: Requested range not satisfiable /// "417" ; Section 10.4.18: Expectation Failed /// /// 5xx: Server Error - The server failed to fulfill an apparently valid request /// "500" ; Section 10.5.1: Internal Server Error /// "501" ; Section 10.5.2: Not Implemented /// "502" ; Section 10.5.3: Bad Gateway /// "503" ; Section 10.5.4: Service Unavailable /// "504" ; Section 10.5.5: Gateway Time-out /// "505" ; Section 10.5.6: HTTP Version not supported /// [Serializable] [DebuggerDisplay("{statusCode}: {Message}")] public sealed class DataServiceException : InvalidOperationException { #region Private fields. ///Language for the exception message. private readonly string messageLanguage; ///Error code to be used in payloads. private readonly string errorCode; ///HTTP response status code for this exception. private readonly int statusCode; ///'Allow' response for header. private string responseAllowHeader; #endregion Private fields. #region Constructors. ////// Initializes a new instance of the DataServiceException class. /// ////// The Message property is initialized to a system-supplied message /// that describes the error. This message takes into account the /// current system culture. The StatusCode property is set to 500 /// (Internal Server Error). /// public DataServiceException() : this(500, Strings.DataServiceException_GeneralError) { } ////// Initializes a new instance of the DataServiceException class. /// /// Plain text error message for this exception. ////// The StatusCode property is set to 500 (Internal Server Error). /// public DataServiceException(string message) : this(500, message) { } ////// Initializes a new instance of the DataServiceException class. /// /// Plain text error message for this exception. /// Exception that caused this exception to be thrown. ////// The StatusCode property is set to 500 (Internal Server Error). /// public DataServiceException(string message, Exception innerException) : this(500, null, message, null, innerException) { } ////// Initializes a new instance of the DataServiceException class. /// /// HTTP response status code for this exception. /// Plain text error message for this exception. public DataServiceException(int statusCode, string message) : this(statusCode, null, message, null, null) { } ////// Initializes a new instance of the DataServiceException class. /// /// HTTP response status code for this exception. /// Error code to be used in payloads. /// Plain text error message for this exception. /// Language of the. /// Exception that caused this exception to be thrown. public DataServiceException(int statusCode, string errorCode, string message, string messageXmlLang, Exception innerException) : base(message, innerException) { this.errorCode = errorCode ?? String.Empty; this.messageLanguage = messageXmlLang ?? CultureInfo.CurrentCulture.Name; this.statusCode = statusCode; } #pragma warning disable 0628 // Warning CS0628: // A sealed class cannot introduce a protected member because no other class will be able to inherit from the // sealed class and use the protected member. // // This method is used by the runtime when deserializing an exception. It follows the standard pattern, // which will also be necessary when this class is subclassed by DataServiceException . /// /// Initializes a new instance of the DataServiceException class from the /// specified SerializationInfo and StreamingContext instances. /// /// /// A SerializationInfo containing the information required to serialize /// the new DataServiceException. /// /// /// A StreamingContext containing the source of the serialized stream /// associated with the new DataServiceException. /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1047", Justification = "Follows serialization info pattern.")] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1032", Justification = "Follows serialization info pattern.")] protected DataServiceException(SerializationInfo serializationInfo, StreamingContext streamingContext) : base(serializationInfo, streamingContext) { if (serializationInfo != null) { this.errorCode = serializationInfo.GetString("errorCode"); this.messageLanguage = serializationInfo.GetString("messageXmlLang"); this.responseAllowHeader = serializationInfo.GetString("responseAllowHeader"); this.statusCode = serializationInfo.GetInt32("statusCode"); } } #pragma warning restore 0628 #endregion Constructors. #region Public properties. ///Error code to be used in payloads. public string ErrorCode { get { return this.errorCode; } } ///Language for the exception Message. public string MessageLanguage { get { return this.messageLanguage; } } ///Response status code for this exception. public int StatusCode { get { return this.statusCode; } } #endregion Public properties. #region Internal properties. ///'Allow' response for header. internal string ResponseAllowHeader { get { return this.responseAllowHeader; } } #endregion Internal properties. #region Methods. ////// Sets the SerializationInfo with information about the exception. /// /// The SerializationInfo that holds the serialized object data about the exception being thrown. /// The StreamingContext that contains contextual information about the source or destination. [SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter = true)] [System.Security.SecurityCritical] public override void GetObjectData(SerializationInfo info, StreamingContext context) { if (info != null) { info.AddValue("errorCode", this.errorCode); info.AddValue("messageXmlLang", this.messageLanguage); info.AddValue("responseAllowHeader", this.responseAllowHeader); info.AddValue("statusCode", this.statusCode); } base.GetObjectData(info, context); } ///Creates a new "Bad Request" exception for recursion limit exceeded. /// Recursion limit that was reaced. ///A new exception to indicate that the request is rejected. internal static DataServiceException CreateDeepRecursion(int recursionLimit) { return DataServiceException.CreateBadRequestError(Strings.BadRequest_DeepRecursion(recursionLimit)); } ///Creates a new "Bad Request" exception for recursion limit exceeded. ///A new exception to indicate that the request is rejected. internal static DataServiceException CreateDeepRecursion_General() { return DataServiceException.CreateBadRequestError(Strings.BadRequest_DeepRecursion_General); } ///Creates a new "Forbidden" exception. ///A new exception to indicate that the request is forbidden. internal static DataServiceException CreateForbidden() { // 403: Forbidden return new DataServiceException(403, Strings.RequestUriProcessor_Forbidden); } ///Creates a new "Resource Not Found" exception. /// segment identifier information for which resource was not found. ///A new exception to indicate the requested resource cannot be found. internal static DataServiceException CreateResourceNotFound(string identifier) { // 404: Not Found return new DataServiceException(404, Strings.RequestUriProcessor_ResourceNotFound(identifier)); } ///Creates a new "Resource Not Found" exception. /// Plain text error message for this exception. ///A new exception to indicate the requested resource cannot be found. internal static DataServiceException ResourceNotFoundError(string errorMessage) { // 404: Not Found return new DataServiceException(404, errorMessage); } ///Creates a new exception to indicate a syntax error. ///A new exception to indicate a syntax error. internal static DataServiceException CreateSyntaxError() { return CreateSyntaxError(Strings.RequestUriProcessor_SyntaxError); } ///Creates a new exception to indicate a syntax error. /// Plain text error message for this exception. ///A new exception to indicate a syntax error. internal static DataServiceException CreateSyntaxError(string message) { return DataServiceException.CreateBadRequestError(message); } ////// Creates a new exception to indicate Precondition error. /// /// Plain text error message for this exception. ///A new exception to indicate a Precondition failed error. internal static DataServiceException CreatePreConditionFailedError(string message) { // 412 - Precondition failed return new DataServiceException(412, message); } ////// Creates a new exception to indicate Precondition error. /// /// Plain text error message for this exception. /// Inner Exception. ///A new exception to indicate a Precondition failed error. internal static DataServiceException CreatePreConditionFailedError(string message, Exception innerException) { // 412 - Precondition failed return new DataServiceException(412, null, message, null, innerException); } ////// Creates a new exception to indicate BadRequest error. /// /// Plain text error message for this exception. ///A new exception to indicate a bad request error. internal static DataServiceException CreateBadRequestError(string message) { // 400 - Bad Request return new DataServiceException(400, message); } ////// Creates a new exception to indicate BadRequest error. /// /// Plain text error message for this exception. /// Inner Exception. ///A new exception to indicate a bad request error. internal static DataServiceException CreateBadRequestError(string message, Exception innerException) { // 400 - Bad Request return new DataServiceException(400, null, message, null, innerException); } ///Creates a new "Method Not Allowed" exception. /// Error message. /// String value for 'Allow' header in response. ///A new exception to indicate the requested method is not allowed on the response. internal static DataServiceException CreateMethodNotAllowed(string message, string allow) { // 405 - Method Not Allowed DataServiceException result = new DataServiceException(405, message); result.responseAllowHeader = allow; return result; } ////// Creates a new exception to indicate MethodNotImplemented error. /// /// Plain text error message for this exception. ///A new exception to indicate a MethodNotImplemented error. internal static DataServiceException CreateMethodNotImplemented(string message) { // 501 - Method Not Implemented return new DataServiceException(501, message); } #endregion Methods. } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ManifestSignatureInformation.cs
- SqlDataSourceView.cs
- CharEnumerator.cs
- SoapMessage.cs
- FtpWebRequest.cs
- CornerRadiusConverter.cs
- TypeRefElement.cs
- CounterCreationDataCollection.cs
- IconConverter.cs
- SqlServices.cs
- ValidatorCollection.cs
- TextElementEnumerator.cs
- CursorConverter.cs
- SQLConvert.cs
- XD.cs
- EntityDesignerUtils.cs
- RootBrowserWindow.cs
- CalendarDay.cs
- DataRow.cs
- MemberInfoSerializationHolder.cs
- EmbeddedObject.cs
- TransactionFlowBindingElementImporter.cs
- XmlCharType.cs
- _SSPISessionCache.cs
- PropertyDescriptor.cs
- FormsIdentity.cs
- SystemInformation.cs
- regiisutil.cs
- CodeNamespaceCollection.cs
- CatalogPartCollection.cs
- ErrorHandler.cs
- CodeCommentStatementCollection.cs
- Rect3DValueSerializer.cs
- PreloadedPackages.cs
- VisualBrush.cs
- UserThread.cs
- Tablet.cs
- XmlnsCompatibleWithAttribute.cs
- TaskFileService.cs
- _Win32.cs
- MaskedTextBox.cs
- EntityClassGenerator.cs
- FontFamilyIdentifier.cs
- TypeUtil.cs
- BooleanAnimationBase.cs
- OperationResponse.cs
- WindowShowOrOpenTracker.cs
- TreeNodeEventArgs.cs
- XsdBuilder.cs
- ClientSettingsStore.cs
- ConnectionStringSettingsCollection.cs
- EventNotify.cs
- OleAutBinder.cs
- webbrowsersite.cs
- HtmlFormParameterReader.cs
- DataProtection.cs
- TheQuery.cs
- CompensatableTransactionScopeActivityDesigner.cs
- IdnElement.cs
- ColumnMapTranslator.cs
- Vector3DCollection.cs
- FormatterServices.cs
- SQLBytesStorage.cs
- ChannelPoolSettingsElement.cs
- WebWorkflowRole.cs
- RoleGroup.cs
- SemanticResolver.cs
- IdentityModelStringsVersion1.cs
- _NtlmClient.cs
- SchemaImporterExtensionElement.cs
- WebPartExportVerb.cs
- BitmapEffectOutputConnector.cs
- ObsoleteAttribute.cs
- AssemblyName.cs
- AdornerPresentationContext.cs
- RefreshPropertiesAttribute.cs
- SoapFaultCodes.cs
- DataGridViewCell.cs
- TemplatedWizardStep.cs
- EncryptedPackageFilter.cs
- ScalarRestriction.cs
- XmlLinkedNode.cs
- TransportDefaults.cs
- CustomValidator.cs
- CacheVirtualItemsEvent.cs
- DragEventArgs.cs
- WindowsTokenRoleProvider.cs
- COM2PropertyPageUITypeConverter.cs
- StateMachineSubscriptionManager.cs
- SerialErrors.cs
- BaseHashHelper.cs
- Variable.cs
- HitTestWithGeometryDrawingContextWalker.cs
- AnnotationDocumentPaginator.cs
- VisualProxy.cs
- SystemIPv6InterfaceProperties.cs
- TcpChannelHelper.cs
- EdmMember.cs
- SerializerDescriptor.cs
- ConnectionPoolManager.cs