Type Definition std::thread::Result 1.0.0[−][src]
type Result<T> = Result<T, Box<dyn Any + Send + 'static>>;
A specialized Result
type for threads.
Indicates the manner in which a thread exited.
The value contained in the Result::Err
variant
is the value the thread panicked with;
that is, the argument the panic!
macro was called with.
Unlike with normal errors, this value doesn’t implement
the Error
trait.
Thus, a sensible way to handle a thread panic is to either:
- propagate the panic with
std::panic::resume_unwind
- or in case the thread is intended to be a subsystem boundary
that is supposed to isolate system-level failures,
match on the
Err
variant and handle the panic in an appropriate way
A thread that completes without panicking is considered to exit successfully.
Examples
Matching on the result of a joined thread:
use std::{fs, thread, panic}; fn copy_in_thread() -> thread::Result<()> { thread::spawn(|| { fs::copy("foo.txt", "bar.txt").unwrap(); }).join() } fn main() { match copy_in_thread() { Ok(_) => println!("copy succeeded"), Err(e) => panic::resume_unwind(e), } }Run