本文簡要介紹rust語言中 Type Definition std::thread::Result
的用法。
用法
pub type Result<T> = Result<T, Box<dyn Any + Send + 'static>>;
線程的專用 Result
類型。
指示線程退出的方式。
Result::Err
變體中包含的值是線程Panics的值;也就是說,調用panic!
宏的參數。與正常錯誤不同,此值不實現 Error
特征。
因此,處理線程Panics的明智方法是:
- 用
std::panic::resume_unwind
傳播Panics - 或者,如果線程旨在成為應該隔離係統級故障的子係統邊界,則匹配
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 Result.unwrap_or_else用法及代碼示例
- Rust Result.as_deref_mut用法及代碼示例
- Rust Result.unwrap_or_default用法及代碼示例
- Rust Result.as_mut用法及代碼示例
- Rust Result.map_or用法及代碼示例
- Rust Result.err用法及代碼示例
- Rust Result用法及代碼示例
- Rust Result.is_err用法及代碼示例
- Rust Result.into_ok用法及代碼示例
- Rust Result.cloned用法及代碼示例
- Rust Result.unwrap_err用法及代碼示例
- Rust Result.expect用法及代碼示例
- Rust Result.map_err用法及代碼示例
- Rust Result.map用法及代碼示例
- Rust Result.iter用法及代碼示例
- Rust Result.and_then用法及代碼示例
- Rust Result.into_ok_or_err用法及代碼示例
- Rust Result.into_err用法及代碼示例
- Rust Result.or用法及代碼示例
- Rust Result.ok用法及代碼示例
- Rust Result.transpose用法及代碼示例
- Rust Result.iter_mut用法及代碼示例
- Rust Result.contains用法及代碼示例
- Rust Result.or_else用法及代碼示例
- Rust Result.expect_err用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 Type Definition std::thread::Result。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。