當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。