当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust Result用法及代码示例


本文简要介绍rust语言中 Type Definition std::thread::Result 的用法。

用法

pub type Result<T> = Result<T, Box<dyn Any + Send + 'static>>;

线程的专用 Result 类型。

指示线程退出的方式。

Result::Err 变体中包含的值是线程Panics的值;也就是说,调用panic! 宏的参数。与正常错误不同,此值不实现 Error 特征。

因此,处理线程Panics的明智方法是:

  1. std::panic::resume_unwind 传播Panics
  2. 或者,如果线程旨在成为应该隔离系统级故障的子系统边界,则匹配 Err 变体并以适当的方式处理Panics

一个在没有Panics的情况下完成的线程被认为是成功退出。

例子

匹配加入线程的结果:

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),
    }
}

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Type Definition std::thread::Result。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。