Add `anyhow` sample code.

pull/786/head
Rustln 3 years ago committed by GitHub
parent be10be8c83
commit 341d737cb1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -667,7 +667,25 @@ fn render() -> Result<String> {
> 如果你想要设计自己的错误类型,同时给调用者提供具体的信息时,就使用 `thiserror`,例如当你在开发一个三方库代码时。如果你只想要简单,就使用 `anyhow`,例如在自己的应用服务中。
本章的篇幅已经过长,因此就不具体介绍 `anyhow` 该如何使用,官方提供的例子已经足够详尽,这里就留给大家自己探索了 :)
```rust
use std::fs::read_to_string;
use anyhow::Result;
fn main() -> Result<()> {
let html = render()?;
println!("{}", html);
Ok(())
}
fn render() -> Result<String> {
let file = std::env::var("MARKDOWN")?;
let source = read_to_string(file)?;
Ok(source)
}
```
关于如何选用 `thiserror``anyhow` 只需要遵循一个原则即可:**是否关注自定义错误消息**,关注则使用 `thiserror`(常见业务代码),否则使用 `anyhow`(编写第三方库代码)。
## 总结

Loading…
Cancel
Save