gpt4 book ai didi

rust - 如何收集 panic !争论?

转载 作者:行者123 更新时间:2023-11-29 08:07:56 29 4
gpt4 key购买 nike

panic!(arg) 发出后如何收集 argThis文档不明确。

当执行 panic!(42) 时,我希望我的应用程序收集 42 并优雅地失败,而不仅仅是中止。

最佳答案

为了收集论点,向下转换 Box<Any>变成一个具体的类型。在你的情况下,我强制 42 类型为 i32 :

use std::thread::spawn;

fn main() {
let thread = spawn(|| { panic!(42_i32); });
let result = thread.join();
match result {
Ok(_) => { println!("thread join result ok"); }
Err(e) => {
match e.downcast::<i32>() {
Ok(e2) => { println!("Got an int error: {:?}", e2); }
Err(e3) => { println!("Got unknown error: {:?}", e3); }
}
}
}
}

关于rust - 如何收集 panic !争论?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37839956/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com