退出代码
程序并不总是能成功。当发生错误时,您应该确保正确地发出必要的信息。除了告诉用户有关错误的信息之外,在大多数系统上,当进程退出时,它还会发出一个退出代码(介于 0 到 255 之间的整数与大多数平台兼容)。您应该尝试为程序的状态发出正确的代码。例如,在程序成功运行的理想情况下,它应该以0
退出。
当发生错误时,事情会变得更加复杂。在现实世界中,许多工具在发生常见故障时会以1
退出。目前,Rust 在进程出现恐慌时会设置一个101
的退出代码。除此之外,人们在他们的程序中做了很多事情。
那么,该怎么办呢?BSD 生态系统已经为其退出代码收集了一个通用定义(您可以在这里找到它们)。Rust 库exitcode
提供了这些相同的代码,可以随时在您的应用程序中使用。请参阅其 API 文档以了解可用的值。
在将exitcode
依赖项添加到您的Cargo.toml
之后,您可以像这样使用它
fn main() {
// ...actual work...
match result {
Ok(_) => {
println!("Done!");
std::process::exit(exitcode::OK);
}
Err(CustomError::CantReadConfig(e)) => {
eprintln!("Error: {}", e);
std::process::exit(exitcode::CONFIG);
}
Err(e) => {
eprintln!("Error: {}", e);
std::process::exit(exitcode::DATAERR);
}
}
}