相比会产生嵌套地狱的 match 来说, 我更喜欢 if 这种方式, 有没有什么更优雅的方式?
fn serv(host: &str, port: u16) {
let server = std::net::TcpListener::bind(format!("{}:{}", host, port));
if server.is_err() {
println!("{}", server.unwrap_err());
return;
}
let server = server.unwrap();
...
}
1
Kilerd 2022 年 3 月 27 日 via iPhone
lib 用 thiserror ,bin 用 anyhow
|
2
jedrek 2022 年 3 月 27 日
不处理的异常和 None 就返回,用 ? 精简代码
|
3
1more 2022 年 3 月 27 日
我也想问,等一个答案
|
4
dorentus 2022 年 3 月 28 日 via iPhone
|
5
dorentus 2022 年 3 月 28 日 |
6
DonkeyBenjamin 2022 年 4 月 3 日
1. ripgrep 作者的看法: https://blog.burntsushi.net/rust-error-handling/
2. 参考 rust for rustaceans 总而言之,application -> anyhow library -> thiserror |