mirror of
https://github.com/fafhrd91/actix-web
synced 2024-11-30 18:44:35 +01:00
Tweaks to Errors chapter.
This commit is contained in:
parent
961edfd21a
commit
0f86c596fa
@ -1,10 +1,11 @@
|
|||||||
# Errors
|
# Errors
|
||||||
|
|
||||||
Actix uses [`Error` type](../actix_web/error/struct.Error.html)
|
Actix uses the [`Error` type](../actix_web/error/struct.Error.html)
|
||||||
and [`ResponseError` trait](../actix_web/error/trait.ResponseError.html)
|
and [`ResponseError` trait](../actix_web/error/trait.ResponseError.html)
|
||||||
for handling handler's errors.
|
for handling handler's errors.
|
||||||
|
|
||||||
Any error that implements the `ResponseError` trait can be returned as an error value.
|
Any error that implements the `ResponseError` trait can be returned as an error value.
|
||||||
*Handler* can return an *Result* object; actix by default provides
|
`Handler` can return an `Result` object. By default, actix provides a
|
||||||
`Responder` implementation for compatible result types. Here is the implementation
|
`Responder` implementation for compatible result types. Here is the implementation
|
||||||
definition:
|
definition:
|
||||||
|
|
||||||
@ -12,7 +13,8 @@ definition:
|
|||||||
impl<T: Responder, E: Into<Error>> Responder for Result<T, E>
|
impl<T: Responder, E: Into<Error>> Responder for Result<T, E>
|
||||||
```
|
```
|
||||||
|
|
||||||
And any error that implements `ResponseError` can be converted into an `Error` object.
|
Any error that implements `ResponseError` can be converted into an `Error` object.
|
||||||
|
|
||||||
For example, if the *handler* function returns `io::Error`, it would be converted
|
For example, if the *handler* function returns `io::Error`, it would be converted
|
||||||
into an `HttpInternalServerError` response. Implementation for `io::Error` is provided
|
into an `HttpInternalServerError` response. Implementation for `io::Error` is provided
|
||||||
by default.
|
by default.
|
||||||
@ -35,7 +37,7 @@ fn index(req: HttpRequest) -> io::Result<fs::NamedFile> {
|
|||||||
|
|
||||||
## Custom error response
|
## Custom error response
|
||||||
|
|
||||||
To add support for custom errors, all we need to do is just implement the `ResponseError` trait
|
To add support for custom errors, all we need to do is implement the `ResponseError` trait
|
||||||
for the custom error type. The `ResponseError` trait has a default implementation
|
for the custom error type. The `ResponseError` trait has a default implementation
|
||||||
for the `error_response()` method: it generates a *500* response.
|
for the `error_response()` method: it generates a *500* response.
|
||||||
|
|
||||||
@ -109,7 +111,7 @@ fn index(req: HttpRequest) -> Result<&'static str, MyError> {
|
|||||||
## Error helpers
|
## Error helpers
|
||||||
|
|
||||||
Actix provides a set of error helper types. It is possible to use them for generating
|
Actix provides a set of error helper types. It is possible to use them for generating
|
||||||
specific error responses. We can use helper types for the first example with custom error.
|
specific error responses. We can use the helper types for the first example with a custom error.
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
# extern crate actix_web;
|
# extern crate actix_web;
|
||||||
|
Loading…
Reference in New Issue
Block a user