退出狀態碼

程式並不總是成功的。

當錯誤發生時,你應該確保正確地發出必要的資訊, 除了告訴使用者錯誤訊息, 在大多數系統中,當行程退出時也會發出一個退出代碼 ( 一個介於 0 和 255 之間的整數,與大多數平台相容 )。

您應盡量根據程式的狀態去制定狀態碼。 例如: 在程式成功運行的理想情況下,應該以 0 退出。

所以,要如何去做呢? 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);
        }
    }
}