[−][src]Attribute Macro rocket::catch
#[catch]
Attribute to generate a Catcher and associated metadata.
This attribute can only be applied to free functions:
use rocket::Request; #[catch(404)] fn not_found(req: &Request) -> String { format!("Sorry, {} does not exist.", req.uri()) }
Grammar
The grammar for the #[catch] attributes is defined as:
catch := STATUS
STATUS := valid HTTP status code (integer in [200, 599])
Typing Requirements
The decorated function must take exactly zero or one argument. If the
decorated function takes an argument, the argument's type must be
&Request.
The return type of the decorated function must implement the Responder
trait.
Semantics
The attribute generates two items:
-
An
ErrorHandler.The generated handler calls the decorated function, passing in the
&Requestvalue if requested. The returned value is used to generate aResponsevia the type'sResponderimplementation. -
A static structure used by
catchers!to generate aCatcher.The static structure (and resulting
Catcher) is populated with the name (the function's name) and status code from the route attribute. The handler is set to the generated handler.