退出状态码
程序不总是能成功地运行。当发生错误时,你需要确保正确地发出必要的信息。
此外如 telling the user about errors 中所说,
在大部分系统中,当一个进程退出,它会发出一个退出状态码
(在大部分平台上是一个 0 至 255 的数字)。
你应该为你的程序发出正确的退出码。
比如,当你的程序成功运行后,它应该生成 0
的退出码。
但当发生错误时,它会变得更复杂一些。
大多数情况下,许多工具在发生一般性错误时会以 1
为退出码。
目前,Rust 为 panicked 的进程设置了 101
的退出状态码。
除此之外,人们在他们的程序中做了许多事情。
所以,要如何去做呢?BSD 生态系统为其退出码做了一个通用的定义
(你可以在这里找到它们)。
Rust 的 exitcode
库也提供了一样的代码,且你可在你的程序中使用。
请参阅其 API 文档以了解其用法。
当你在你的 Cargo.toml
中添加 exitcode
依赖后,你可以这样使用:
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);
}
}
}