rust 中 try-catch 语句的等价物
rust 是一种编程语言,它提供了一种更安全、更可靠的软件开发方式。它旨在防止导致其他语言安全漏洞的常见错误。
rust 语言不支持异常处理,这意味着它在 rust 中没有 try-catch
语句。
rust 中缺少异常处理消除了由于函数抛出异常而导致运行时错误的可能性。这是因为程序将在发生错误的地方停止,而不是继续并可能导致代码库中的其他问题。
本文将讨论 rust 等价于 try-catch
语句。
等价于 rust 中的 try-catch
语句
rust 中有许多等价的 try-catch
语句。但是,在本文中,我们将只讨论几个最接近的等价物。
在 rust 中使用 ?
操作符
在 rust 中,我们可以使用 ?
运算符返回或不返回值。
这 ?
运算符是 rust 的基本特性之一,它可以以多种不同的方式使用。它可以检查一个值是否存在,一个值是否已分配给一个变量,或者一个表达式的计算结果是否为真或假。
这 ?
运算符也可以用作 rust 的 try-catch
语句的替代方案。这 ?
运算符将闭包作为其参数。
然后可以调用闭包,而不必担心如果在执行期间发生错误会发生什么。
这 ?
如果没有错误,运算符将捕获错误并返回闭包的值,或者如果有错误,它将返回一个错误类型,并描述发生了什么错误。
例子:
fn main(){lethello_tasks=||-> result<(),helloerror>{hello_task_1()?;hello_task_2()?;hello_task_3()?;ok(())};ifleterr(_err)=hello_tasks(){println!("there's an error in your code, please correct it");}}enum helloerror{hellotask1error,hellotask2error,hellotask3error,}fn hello_task_1()-> result<(),helloerror>{println!("task no 1");ok(())}fn hello_task_2()-> result<(),helloerror>{println!("task no 2");err(helloerror::hellotask2error)}fn hello_task_3()-> result<(),helloerror>{println!("task3");ok(())}
输出:
task no 1
task no 2
there's an error in your code, please correct it
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
发布时间:2024/02/05 浏览次数:134 分类:编程语言
-
本教程是关于 rust 中 rc::clone(&rc) 和 rc.clone() 之间的区别。
发布时间:2024/02/05 浏览次数:107 分类:编程语言
-
rust 有一个 & 符号特性,可用于在代码中的任何位置使任何变量可变或不可变。
发布时间:2023/03/21 浏览次数:269 分类:编程语言
-
这个简短的教程演示了如何使用 rust 中的 abs() 函数获取绝对值。
发布时间:2023/03/21 浏览次数:205 分类:编程语言
-
本教程演示了在 rust 结构中初始化变量的简短方法。
发布时间:2023/03/21 浏览次数:148 分类:编程语言
-
本教程演示了在 rust 中克隆 arc 时会发生什么。
发布时间:2023/03/21 浏览次数:223 分类:编程语言
-
本教程演示了在不同版本的 rust 中读取和写入文件的方式。
发布时间:2023/03/21 浏览次数:140 分类:编程语言
-
本教程是关于 rust 中 rc::clone(&rc) 和 rc.clone() 之间的区别。
发布时间:2023/03/21 浏览次数:242 分类:编程语言
-
本教程演示了 rust 的逐步交互式调试器。
发布时间:2023/03/21 浏览次数:374 分类:编程语言
-
本教程是关于使用 rust-image 以程序方式生成图像的。