我知道,在鏽沒有try/catch語句,你不能把滾動保存從當前恐慌的線程。從`恐慌中恢復!`在另一個線程
我知道你不應該創造和處理這樣的錯誤。這僅僅是爲了例子。
不過,我想知道什麼是最好的方法來恢復從恐慌。這是我現在有:
use std::thread;
fn main() {
println!("Hello, world!");
let h = thread::spawn(|| {
thread::sleep_ms(1000);
panic!("boom");
});
let r = h.join();
match r {
Ok(r) => println!("All is well! {:?}", r),
Err(e) => println!("Got an error! {:?}", e)
}
println!("Exiting main!");
}
有沒有更好的方法來處理來自其他線程的錯誤?有沒有辦法捕捉恐慌的信息?這似乎只告訴我,該錯誤類型爲Any
。謝謝!
完美!關於錯誤格式的位是'&'static str'就是我所需要的。謝謝!我有點驚訝,現在Rust已經不穩定了,現在Rust已經不穩定了,但也很高興在他們準備好之前讓他們不在野外。 – jocull
@jocull「1.0」並不意味着「我們完成了」,它只是意味着「好吧,我們現在每隔幾天就會停止打破一切。」如果你期望標準庫是「功能完備」的,因爲Rust的值爲1.0,那麼你將會非常失望。 :) –
@DK .:我寧願說:「如果你期望Rust現在停止發展,它現在是1.0,你會感到驚喜的:)」 –