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
- XmlQueryTypeFactory.cs
- SchemaElementDecl.cs
- DesignerOptions.cs
- NeedSkipTokenVisitor.cs
- Errors.cs
- LassoSelectionBehavior.cs
- InvariantComparer.cs
- CompiledQuery.cs
- TextSpanModifier.cs
- ReferenceEqualityComparer.cs
- KeyNotFoundException.cs
- ListViewItem.cs
- TabPanel.cs
- SrgsOneOf.cs
- __FastResourceComparer.cs
- MSAANativeProvider.cs
- ComPersistableTypeElement.cs
- HostExecutionContextManager.cs
- LineServicesCallbacks.cs
- TypeDependencyAttribute.cs
- ClipboardProcessor.cs
- ObjectDataSourceSelectingEventArgs.cs
- IndependentAnimationStorage.cs
- DoWorkEventArgs.cs
- HeaderedContentControl.cs
- LocatorPart.cs
- QilPatternVisitor.cs
- DataControlPagerLinkButton.cs
- PolyLineSegmentFigureLogic.cs
- StringBlob.cs
- _KerberosClient.cs
- ForeignConstraint.cs
- NavigationEventArgs.cs
- DescendentsWalker.cs
- Vertex.cs
- SqlConnectionFactory.cs
- Keyboard.cs
- HyperLinkDesigner.cs
- BindingRestrictions.cs
- VerticalAlignConverter.cs
- DataGridViewHitTestInfo.cs
- HtmlTableCellCollection.cs
- XamlWriter.cs
- EpmContentSerializer.cs
- WizardForm.cs
- NativeObjectSecurity.cs
- FullTextState.cs
- HierarchicalDataSourceConverter.cs
- XmlReaderSettings.cs
- BordersPage.cs
- LocationUpdates.cs
- ChannelServices.cs
- PlacementWorkspace.cs
- UnsafeNativeMethods.cs
- EtwTrackingParticipant.cs
- RawKeyboardInputReport.cs
- StateDesignerConnector.cs
- KeyValuePairs.cs
- HttpApplication.cs
- ContextMenuAutomationPeer.cs
- Console.cs
- WebBrowserNavigatingEventHandler.cs
- ChineseLunisolarCalendar.cs
- WindowsEditBoxRange.cs
- ScaleTransform3D.cs
- PackagingUtilities.cs
- DataPagerCommandEventArgs.cs
- DataSourceControlBuilder.cs
- DataGridViewTextBoxColumn.cs
- OrderedEnumerableRowCollection.cs
- SmiEventStream.cs
- WebBrowserContainer.cs
- FrameworkContentElement.cs
- KeyValuePair.cs
- FlowDocumentPage.cs
- RewritingProcessor.cs
- TextDecorationCollection.cs
- SaveFileDialog.cs
- SymbolType.cs
- Mapping.cs
- TitleStyle.cs
- TokenizerHelper.cs
- Process.cs
- PersonalizationProvider.cs
- ContextMenu.cs
- GridViewUpdateEventArgs.cs
- ByteAnimation.cs
- AttributeCallbackBuilder.cs
- Int32RectConverter.cs
- ReadingWritingEntityEventArgs.cs
- ObservableDictionary.cs
- ViewValidator.cs
- MdiWindowListItemConverter.cs
- DrawingCollection.cs
- Span.cs
- OletxCommittableTransaction.cs
- SqlResolver.cs
- GridViewSelectEventArgs.cs
- SiteMapSection.cs
- ActivityInstance.cs