gpt4 book ai didi

rust - 匹配错误结果并在分配变量时退出程序

转载 作者:行者123 更新时间:2023-12-03 11:32:36 25 4
gpt4 key购买 nike

我确实使用match语句检查函数结果。在某些情况下,我想使用panic!()这样的错误消息退出程序。但是,如何创建可以在任何地方使用的函数或宏?
例子:

let args = match args::Args::parse() {
Ok(args) => args,
Err(e) => someerror("bla")
};
let mut statedoc = match state_loader.load() {
Ok(states) => states,
Err(e) => someerror("blub")
};
someerror()需要什么才能在任何地方恢复工作?

最佳答案

一种方法是使用diverging function。使用以下语法:

fn someerror(msg: &str) -> ! { // Note the `-> !` here
eprintln!("Error: {}", msg);
panic!();
}

fn main() {
let r: Result<i32, &str> = Err("hello");
let x = match r {
Ok(x) => x,
Err(e) => someerror(e),
};
println!("x = {}", x);
}

关于rust - 匹配错误结果并在分配变量时退出程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63670569/

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