专业的编程技术博客社区

网站首页 > 博客文章 正文

Rust 基础入门-错误处理和宏-错误处理

baijin 2024-09-11 00:55:39 博客文章 7 ℃ 0 评论

概念

学习目标:掌握 Rust 的2种错误处理方式:panic 和 Result

Rust中的错误主要分为2类,不可恢复错误 panic 可恢复错误 Result。

Panic 是一种非正常的程序终止,通常表示发生了无法恢复的错误,例如数组越界、除零等。在 Rust 中,Panic 可以通过 panic! 宏来显式触发。当 panic 发生时,程序会打印错误信息,并在栈展开(stack unwinding)过程中清理资源,最终退出程序。

Result 是一种更为正常和可控的错误处理方式,例如文件操作、网络请求等可能发生错误的场景。这些操作可以返回 Result<T, E> 类型并交由开发者处理,其中 T 是成功时的返回类型,E 是错误时的返回类型。

文档:

下面的代码我们分别展示了panic错误和Result<T, E>错误。其中TE是泛型类型参数,T 代表成功时返回的数据类型,而 E 代表失败时返回的错误类型。由于 Result 预导入模块(prelude)已经包含了Result枚举及其成员,所以使用中不需要显式指定前缀Result::,如Result::Ok、Result::Err,可直接使用 OK 或 Err


示例代码:

使用Result + match 模式匹配会有大量的样板代码,Rust 提供了一种简化错误传播的语法糖:?。它的作用是在函数中将 Result 的 Ok 值直接返回,而在遇到 Err 时,将其包装在 Err 中并中止函数的执行,将错误传播给调用方。这样可以有效地减少错误处理代码的嵌套,使得代码更加清晰和紧凑。


Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表