[][src]Trait tower_web::error::Catch

pub trait Catch: Clone {
    type Body: BufStream;
    type Future: Future<Item = Response<Self::Body>, Error = Error>;
    fn catch(&mut self, request: &Request<()>, error: Error) -> Self::Future;
}

Handles an error generated by a resource method.

In the event that an error occurs while processing an HTTP request, implementations of Catch have the opportunity of gracefully handling the error. This usually means responding with a friendly error response.

For example, if the error is generated due to no routes matching the HTTP request, then a 404 response should be returned. If a route was matched, but the arguments were not satisfied, then a 400 response should be returned.

Associated Types

type Body: BufStream

The HTTP response body type

type Future: Future<Item = Response<Self::Body>, Error = Error>

Future yielding the HTTP response.

Loading content...

Required methods

fn catch(&mut self, request: &Request<()>, error: Error) -> Self::Future

Handles an error.

Implementations of Catch generate a friendly HTTP error response based on the provideed request and error.

See module level documentation for more details.

Loading content...

Implementors

impl Catch for DefaultCatch[src]

Implements Catch by returning an HTTP response with the appropriate status code.

The HTTP response will include a basic error message in the response body.

type Body = String

type Future = FutureResult<Response<Self::Body>, Error>

impl<F, R, Body> Catch for FnCatch<F> where
    F: Fn(&Request<()>, Error) -> R,
    R: IntoFuture<Item = Response<Body>, Error = Error>,
    Body: BufStream
[src]

type Body = Body

type Future = R::Future

Loading content...