相比会产生嵌套地狱的 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-03-27 01:37:17 +08:00 via iPhone lib 用 thiserror ,bin 用 anyhow |
![]() | 2 jedrek 2022-03-27 11:53:17 +08:00 不处理的异常和 None 就返回,用 ? 精简代码 |
![]() | 3 1more 2022-03-27 16:06:57 +08:00 我也想问,等一个答案 |
![]() | 4 dorentus 2022-03-28 07:02:32 +08:00 via iPhone |
![]() | 5 dorentus 2022-03-28 09:50:15 +08:00 ![]() |
![]() | 6 DonkeyBenjamin 2022-04-03 23:49:20 +08:00 1. ripgrep 作者的看法: https://blog.burntsushi.net/rust-error-handling/ 2. 参考 rust for rustaceans 总而言之,application -> anyhow library -> thiserror |