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:
unwrap
the Result<T>
, propagating the panicErr
variant and handle the panic in an appropriate way.A thread that completes without panicking is considered to exit successfully.
use std::thread; use std::fs; fn copy_in_thread() -> thread::Result<()> { thread::spawn(move || { fs::copy("foo.txt", "bar.txt").unwrap(); }).join() } fn main() { match copy_in_thread() { Ok(_) => println!("this is fine"), Err(_) => println!("thread panicked"), } }
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/thread/type.Result.html