现在捕获错误
如果配置文件丢失或损坏怎么办?如果某个环境变量的内容为空怎么办?这些情况很容易被遗忘!但是,由于其错误处理方法和库设计,Rust 会在你运行程序之前指出这些“如果”情况。
Rust 的错误处理如果配置文件丢失或损坏怎么办?如果某个环境变量的内容为空怎么办?这些情况很容易被遗忘!但是,由于其错误处理方法和库设计,Rust 会在你运行程序之前指出这些“如果”情况。
Rust 的错误处理Rust 允许你在组织代码的方式上具有灵活性。从单个文件开始,当你需要更多功能时,你可以放心地重构你的应用程序,而不用担心会破坏任何东西。
重构 Rust编写命令行应用程序是学习 Rust 的绝佳方式。
use clap::Parser;
/// Read some lines of a file
#[derive(Debug, Parser)]
struct Cli {
/// Input file to read
file: String,
/// Number of lines to read
#[structopt(short = 'n')]
num: usize,
}
use std::{error::Error, fs::read_to_string};
fn main() -> Result<(), Box> {
let args = Cli::parse();
read_to_string(&args.file)?
.lines()
.take(args.num)
.for_each(|line| println!("{}", line));
Ok(())
}
我们喜欢 Rust 的原因之一是 crates.io 生态系统。[...] 有很多非常好的现有基础设施,可以用来构建非常好的命令行界面。
– Armin Ronacher, Sentry 的 Rust – PolyConf 2017
我对使用这个代码库没有任何遗憾。[…] 这对我来说算是一个额外的奖励:使用 Rust 来制作 CLI 或基于控制台的工具。它非常擅长为不同的目标系统进行编译。
– Fletcher Nichol, 将 Rust 投入生产 – RustFest Kyiv