在我小小的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