Struct std::process::ExitStatusError [−][src]
pub struct ExitStatusError(_);
Expand description
描述进程失败后的结果
通过 ExitStatus
上的 .exit_ok
方法生成。
Examples
#![feature(exit_status_error)] use std::process::{Command, ExitStatusError}; fn run(cmd: &str) -> Result<(),ExitStatusError> { Command::new(cmd).status().unwrap().exit_ok()?; Ok(()) } run("true").unwrap(); run("false").unwrap_err();Run
Implementations
从 ExitStatusError
报告退出代码 (如果适用)。
用 Unix 的术语来说,返回值是退出状态: 如果进程通过调用 exit
完成,则传递给 exit
的值。
请注意,在 Unix 上,退出状态被截断为 8 位,并且不是来自程序调用到 exit
的值可能是由运行时系统发明的 (通常,例如,255、254、127 或 126)。
在 Unix 上,如果进程被信号终止,它将返回 None
。
如果您想专门处理这种情况,请考虑使用 ExitStatusExt
中的方法。
如果进程通过使用非零值调用 exit
完成,这将返回该退出状态。
如果错误是其他原因,它将返回 None
。
如果进程成功退出 (即通过调用 exit(0)
),则没有 ExitStatusError
。所以 ExitStatusError::code()
的返回值总是非零。
Examples
#![feature(exit_status_error)] use std::process::Command; let bad = Command::new("false").status().unwrap().exit_ok().unwrap_err(); assert_eq!(bad.code(), Some(1));Run
将 ExitStatusError
的退出代码 (如果适用) 报告为 NonZero
这与 code()
完全一样,只是它返回一个 NonZeroI32
。
提供普通 code
,返回一个普通整数,因为它通常更方便。
code()
的返回值确实也是非零的; 当您想要非零的类型级别保证时,请使用 code_nonzero()
。
Examples
#![feature(exit_status_error)] use std::convert::TryFrom; use std::num::NonZeroI32; use std::process::Command; let bad = Command::new("false").status().unwrap().exit_ok().unwrap_err(); assert_eq!(bad.code_nonzero().unwrap(), NonZeroI32::try_from(1).unwrap());Run
将 ExitStatusError
(back) 转换为 ExitStatus
。
Trait Implementations
👎 Deprecated since 1.42.0:
use the Display impl or to_string()
This is supported on Unix only.
执行转换。
此方法测试 self
和 other
值是否相等,并由 ==
使用。 Read more
此方法测试 !=
。