退出代码

程序并不总是能成功。当发生错误时,您应该确保正确地发出必要的信息。除了告诉用户有关错误的信息之外,在大多数系统上,当进程退出时,它还会发出一个退出代码(介于 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);
        }
    }
}