async-graphql/docs/zh-CN/src/error_handling.md

27 lines
688 B
Markdown
Raw Normal View History

2020-04-15 03:15:30 +00:00
# 错误处理
2020-04-16 03:06:09 +00:00
2020-05-13 04:49:43 +00:00
Resolver函数可以返回一个FieldResult类型以下是FieldResult的定义
2020-04-16 07:09:09 +00:00
```rust
type FieldResult<T> = std::result::Result<T, FieldError>;
```
任何错误都能够被转换为`FieldError`,并且你还能扩展标准的错误信息。
2020-04-16 03:06:09 +00:00
下面是一个例子,解析一个输入的字符串到整数,当解析失败时返回错误,并且附加额外的错误信息。
```rust
2020-04-16 07:09:09 +00:00
use async_graphql::*;
2020-04-16 03:06:09 +00:00
struct Query;
#[Object]
impl Query {
#[field]
async fn parse_with_extensions(&self, input: String) -> FieldResult<i32> {
Ok("234a"
.parse()
.map_err(|err| err.extend_with(|_| json!({"code": 400})))?)
}
}
```