Skip to main content

Error

Enum Error 

Source
pub enum Error {
Show 48 variants Http(String), RouteNotFound(String), MethodNotAllowed(String), DependencyInjection(String), ProviderNotFound(String), Serialization(String), Deserialization(String), Validation(String), Internal(String), Forbidden(String), Io(Error), BadRequest(String), Unauthorized(String), PaymentRequired(String), NotFound(String), NotAcceptable(String), ProxyAuthenticationRequired(String), RequestTimeout(String), Conflict(String), Gone(String), LengthRequired(String), PreconditionFailed(String), PayloadTooLarge(String), UriTooLong(String), UnsupportedMediaType(String), RangeNotSatisfiable(String), ExpectationFailed(String), ImATeapot(String), MisdirectedRequest(String), UnprocessableEntity(String), Locked(String), FailedDependency(String), TooEarly(String), UpgradeRequired(String), PreconditionRequired(String), TooManyRequests(String), RequestHeaderFieldsTooLarge(String), UnavailableForLegalReasons(String), NotImplemented(String), BadGateway(String), ServiceUnavailable(String), GatewayTimeout(String), HttpVersionNotSupported(String), VariantAlsoNegotiates(String), InsufficientStorage(String), LoopDetected(String), NotExtended(String), NetworkAuthenticationRequired(String),
}

Variants§

§

Http(String)

§

RouteNotFound(String)

§

MethodNotAllowed(String)

§

DependencyInjection(String)

§

ProviderNotFound(String)

§

Serialization(String)

§

Deserialization(String)

§

Validation(String)

§

Internal(String)

§

Forbidden(String)

§

Io(Error)

§

BadRequest(String)

§

Unauthorized(String)

§

PaymentRequired(String)

§

NotFound(String)

§

NotAcceptable(String)

§

ProxyAuthenticationRequired(String)

§

RequestTimeout(String)

§

Conflict(String)

§

Gone(String)

§

LengthRequired(String)

§

PreconditionFailed(String)

§

PayloadTooLarge(String)

§

UriTooLong(String)

§

UnsupportedMediaType(String)

§

RangeNotSatisfiable(String)

§

ExpectationFailed(String)

§

ImATeapot(String)

§

MisdirectedRequest(String)

§

UnprocessableEntity(String)

§

Locked(String)

§

FailedDependency(String)

§

TooEarly(String)

§

UpgradeRequired(String)

§

PreconditionRequired(String)

§

TooManyRequests(String)

§

RequestHeaderFieldsTooLarge(String)

§

UnavailableForLegalReasons(String)

§

NotImplemented(String)

§

BadGateway(String)

§

ServiceUnavailable(String)

§

GatewayTimeout(String)

§

HttpVersionNotSupported(String)

§

VariantAlsoNegotiates(String)

§

InsufficientStorage(String)

§

LoopDetected(String)

§

NotExtended(String)

§

NetworkAuthenticationRequired(String)

Implementations§

Source§

impl Error

Source

pub fn status_code(&self) -> u16

Get the HTTP status code for this error

Source

pub fn http_status(&self) -> HttpStatus

Get the HttpStatus enum for this error

Source

pub fn is_client_error(&self) -> bool

Check if this is a client error (4xx)

Source

pub fn is_server_error(&self) -> bool

Check if this is a server error (5xx)

Source

pub fn to_client_response(&self) -> HttpResponse

Build a client-safe HTTP response for this error.

The status code comes from Error::status_code. 4xx client errors keep their descriptive message so callers can correct their request; 5xx server errors are redacted to a generic "Internal Server Error" message so internal detail (connection strings, upstream errors, stack context) never leaks to the client. The full error should be logged separately at the call site.

The JSON body is always {"error": <message>, "status": <code>}. This is the single canonical error-to-response mapping shared by every server transport (HTTP/1, HTTP/2, HTTP/3, and the micro server) so their error responses never drift apart.

Source

pub fn bad_request(msg: impl Into<String>) -> Self

Create a bad request error with a message.

Source

pub fn unauthorized(msg: impl Into<String>) -> Self

Create an unauthorized error with a message.

Source

pub fn forbidden(msg: impl Into<String>) -> Self

Create a forbidden error with a message.

Source

pub fn not_found(msg: impl Into<String>) -> Self

Create a not found error with a message.

Source

pub fn conflict(msg: impl Into<String>) -> Self

Create a conflict error with a message.

Source

pub fn internal(msg: impl Into<String>) -> Self

Create an internal server error with a message.

Source

pub fn validation(msg: impl Into<String>) -> Self

Create a validation error with a message.

Source

pub fn timeout(msg: impl Into<String>) -> Self

Create a timeout error with a message.

Source

pub fn rate_limited(msg: impl Into<String>) -> Self

Create a rate limit error with a message.

Source

pub fn unavailable(msg: impl Into<String>) -> Self

Create a service unavailable error with a message.

Source

pub fn help(&self) -> Option<&'static str>

Get a help message with suggestions for resolving this error.

Trait Implementations§

Source§

impl CorrelatedErrorExt for Error

Source§

fn correlate(&self, context: CorrelationContext) -> CorrelatedError

Convert to a correlated error with context.
Source§

fn correlate_with_request(&self, request: &HttpRequest) -> CorrelatedError

Convert to a correlated error from request.
Source§

impl Debug for Error

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for Error

Source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Error for Error

Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl From<Error> for Error

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl !RefUnwindSafe for Error

§

impl !UnwindSafe for Error

§

impl Freeze for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl UnsafeUnpin for Error

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<R, D> DepsPresent<D> for R

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Injectable for T
where T: Send + Sync + 'static,

Source§

fn type_id_of() -> TypeId
where Self: Sized,

Returns the TypeId of this type (for internal use)
Source§

fn type_name_of() -> &'static str
where Self: Sized,

Returns the type name for debugging
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Provider for T
where T: Injectable,

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToCompactString for T
where T: Display,

Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<R, D> VerifyDeps<D> for R

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more