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
- BehaviorService.cs
- ISAPIRuntime.cs
- InfoCardClaim.cs
- KeyGesture.cs
- DataGridViewCellValueEventArgs.cs
- CipherData.cs
- StringOutput.cs
- CustomCategoryAttribute.cs
- TagPrefixCollection.cs
- Setter.cs
- UndoManager.cs
- HtmlImage.cs
- ChildTable.cs
- NavigationCommands.cs
- SendMailErrorEventArgs.cs
- ItemChangedEventArgs.cs
- ExtendedTransformFactory.cs
- SqlDataSourceCustomCommandEditor.cs
- LogSwitch.cs
- StorageEntityTypeMapping.cs
- PointUtil.cs
- ZoneLinkButton.cs
- GPRECT.cs
- WebServiceResponseDesigner.cs
- TaskDesigner.cs
- Base64Stream.cs
- GraphicsContext.cs
- TextElement.cs
- NegotiateStream.cs
- KeyInstance.cs
- BindToObject.cs
- XmlCharCheckingWriter.cs
- PkcsMisc.cs
- PrincipalPermission.cs
- DataRelation.cs
- SystemIPInterfaceProperties.cs
- VectorKeyFrameCollection.cs
- VersionedStream.cs
- UnsafeNativeMethods.cs
- Vector3DAnimationBase.cs
- LeaseManager.cs
- GlyphTypeface.cs
- InternalCache.cs
- InputLanguageEventArgs.cs
- Binding.cs
- ToolstripProfessionalRenderer.cs
- Stacktrace.cs
- ByteStorage.cs
- UnsafeMethods.cs
- ConfigurationStrings.cs
- BuildManagerHost.cs
- XmlLanguageConverter.cs
- DocumentPage.cs
- ByteStreamMessageEncodingElement.cs
- Transform3DGroup.cs
- WriteTimeStream.cs
- StateMachineSubscriptionManager.cs
- SQLInt32.cs
- XsltContext.cs
- CustomBinding.cs
- PersonalizationState.cs
- XamlHostingSection.cs
- URLAttribute.cs
- ConfigurationElementProperty.cs
- SQLResource.cs
- MemberDomainMap.cs
- CodeGen.cs
- HebrewNumber.cs
- PageSettings.cs
- httpapplicationstate.cs
- DelegatingConfigHost.cs
- ParseHttpDate.cs
- VirtualizingPanel.cs
- DataGridDetailsPresenter.cs
- OledbConnectionStringbuilder.cs
- ConfigWriter.cs
- designeractionlistschangedeventargs.cs
- Rule.cs
- MsmqInputSessionChannel.cs
- SecurityDescriptor.cs
- BufferedStream.cs
- ClientRuntimeConfig.cs
- TableLayoutCellPaintEventArgs.cs
- ReflectionPermission.cs
- TimelineCollection.cs
- XmlAttribute.cs
- PropertyInformationCollection.cs
- ParagraphVisual.cs
- UInt32Storage.cs
- ToolStripContentPanelDesigner.cs
- Decoder.cs
- SignatureDescription.cs
- MultiDataTrigger.cs
- ByteStream.cs
- GeneralTransform.cs
- TiffBitmapEncoder.cs
- DataGridParentRows.cs
- OdbcError.cs
- GetWorkflowTree.cs
- ShapingEngine.cs