在我小小的Rust程序中,我打電話給一個Windows API,並要確保一切正常。爲了做到這一點,我使用了std::io::Error::last_os_error()
提供的功能。我也想故意忽略可能發生的一些錯誤。如何才能匹配std :: io ::錯誤與Windows錯誤代碼?
我找不到任何有關如何做的信息,除了打印出該函數返回的Error
。我真正需要的是一種能夠處理各種已知錯誤的匹配聲明。
我知道該函數返回一個std::io::Error
結構,但我找不到關於錯誤ID或類似概念的任何信息。
目前,我的代碼讀起來就像
use std::io::Error;
fn main() {
// do some stuff that may lead to an error
match Error::last_os_error() {
163 => // Do nothing. This error is to be expected
// _ => Err("Something went wrong "),
}
}
實際的問題是,last_os_error()
返回一個錯誤結構,但我想匹配的是在WinError.h中列出的錯誤的ID(這個程序只運行在Windows下)。
任何人都可以幫助我區分錯誤結構背後的各種錯誤嗎?
@Shepmaster你是對的。這篇文章寫得很差。爲此道歉。也許這是我的問題的一部分。我甚至很難找到正確的詞,描述我的問題。我剛剛編輯了這篇文章,希望我的問題現在變得更加清晰。 – Norbert