Type Definition std::thread::Result 1.0.0[−][src]
type Result<T> = Result<T, Box<dyn Any + Send + 'static>>;
Expand description
线程专用的 Result
类型。
指示线程退出的方式。
Result::Err
成员中包含的值是被恐慌的线程的值;
也就是说,调用了 panic!
宏的参数。
与正常错误不同,此值不实现 Error
trait。
因此,处理线程 panic 的明智方法是:
- 用
std::panic::resume_unwind
传播 panic
或如果线程打算作为子系统边界来隔离系统级故障,在 Err
成员上进行匹配并以适当的方式处理 panic
没有恐慌地完成的线程被认为已成功退出。
Examples
匹配已连接线程的结果:
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