gpt4 book ai didi

error-handling - Rust 是否有提前返回错误的钩子(Hook)?

转载 作者:行者123 更新时间:2023-12-03 08:09:13 52 4
gpt4 key购买 nike

panic! allows the setting of a custom (albeit global) hook . ? 的早期返回有什么可比性吗?运算符(operator)?我有一个功能需要在退出之前以特殊方式关闭一些资源。我可以写一个函数ok_or_close()在返回错误之前关闭资源:

fn opens_resources() -> Result<(), MyError> {
//Opens some stuff.

//Now a bunch of functions that might raise errors.
ok_or_close(foo(), local variables)?;
ok_or_close(bar(), local variables)?;
ok_or_close(baz(), local variables)?;

ok_or_close(Ok(()), local variables)
}
但这似乎很冗长。我真正想做的是:
fn opens_resources() -> Result<(), MyError> {
//Opens some stuff.

//Now a bunch of functions that might raise errors.
foo()?;
bar()?;
baz()?;

on_err:
//Closes some stuff. Would prefer not to make
// this a function, uses many local variables.
Ok(())
}
有没有办法做到这一点或解决这个问题的编程模式?

最佳答案

与此最接近的是 Try trait 允许你如何实现?影响特定类型,但遗憾的是它仍然是一个夜间实验,如 here 所述
如果您对此功能感兴趣,我建议您在此 issue 上 +1

关于error-handling - Rust 是否有提前返回错误的钩子(Hook)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62839628/

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