SAIFException¶
SAIFException is the abstract base type for every API exception defined in this library. It adds a single capability beyond the standard .NET Exception: a settable HttpStatusCode property, so that HTTP-facing consumers can associate and later read an HTTP status on the exception instance (BR-CORE-002). This library supplies only the vocabulary/types for HTTP-failure signaling — the decision of which status maps to which concrete subtype is made by the consumer, e.g. SAIF.Web.API.Clients's ExceptionHandler.ToKnownError, not by this class.
Purpose¶
- Serve as the common base for
NoMatchingDataException,UnauthorizedAccessException,InternalServerError, andInvalidDataException, so consumers can catchSAIFExceptionto handle any API-originated error uniformly. - Carry a settable
HttpStatusCode, distinct from the exception's own identity, so that HTTP-facing consumers can set/read the status after construction (BR-CORE-002).
Context¶
- Namespace:
SAIF.API.Exceptions - Assembly/package:
SAIF.Web.API.Core(bundled into theSAIF.Web.API.ClientsNuGet package)
Public members¶
| Member | Signature | Purpose |
|---|---|---|
SAIFException() |
SAIFException() |
Parameterless constructor; forwards to the base Exception() constructor with no message. |
SAIFException(string message) |
SAIFException(string message) |
Constructs the exception with the given message. |
SAIFException(string message, Exception innerException) |
SAIFException(string message, Exception innerException) |
Constructs the exception with a message and a wrapped inner exception. |
SAIFException(SerializationInfo info, StreamingContext context) |
SAIFException(SerializationInfo info, StreamingContext context) |
Standard .NET exception deserialization constructor. |
HttpStatusCode |
HttpStatusCode HttpStatusCode { get; set; } |
Associates an HTTP status code with the exception instance; no constructor in this class assigns a default value — it is set by the consumer after construction (BR-CORE-002). |
Behavioral notes¶
SAIFExceptionisabstract; it cannot be instantiated directly and exists only to be subclassed.- No constructor sets
HttpStatusCode— it must be assigned by the consumer after construction, per its plain property declaration.
Constraints and usage notes¶
- All four concrete subtypes defined in this library (
NoMatchingDataException,UnauthorizedAccessException,InternalServerError,InvalidDataException) are public and concrete, with no further subclasses defined within this library.
Sources¶
src/SAIF.Web.API.Core/SAIFException.cs