Struct std::process::ExitStatusError
source · [−]pub struct ExitStatusError(_);
Expand description
Describes the result of a process after it has failed
Produced by the .exit_ok
method on ExitStatus
.
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();
RunImplementations
Reports the exit code, if applicable, from an ExitStatusError
.
In Unix terms the return value is the exit status: the value passed to exit
, if the
process finished by calling exit
. Note that on Unix the exit status is truncated to 8
bits, and that values that didn’t come from a program’s call to exit
may be invented by the
runtime system (often, for example, 255, 254, 127 or 126).
On Unix, this will return None
if the process was terminated by a signal. If you want to
handle such situations specially, consider using methods from
ExitStatusExt
.
If the process finished by calling exit
with a nonzero value, this will return
that exit status.
If the error was something else, it will return None
.
If the process exited successfully (ie, by calling exit(0)
), there is no
ExitStatusError
. So the return value from ExitStatusError::code()
is always nonzero.
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));
RunReports the exit code, if applicable, from an ExitStatusError
, as a NonZero
This is exactly like code()
, except that it returns a NonZeroI32
.
Plain code
, returning a plain integer, is provided because is is often more convenient.
The returned value from code()
is indeed also nonzero; use code_nonzero()
when you want
a type-level guarantee of nonzeroness.
Examples
#![feature(exit_status_error)]
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());
RunConverts an ExitStatusError
(back) to an ExitStatus
.
Trait Implementations
Creates a new ExitStatus
or ExitStatusError
from the raw underlying integer status
value from wait
Read more
If the process was terminated by a signal, returns that signal. Read more
If the process was terminated by a signal, says whether it dumped core.
If the process was stopped by a signal, returns that signal. Read more
Performs the conversion.
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.