Rust基础拾遗--辅助功能


前言

   通过Rust程序设计-第二版笔记的形式对Rust相关重点知识进行汇总,读者通读此系列文章就可以轻松的把该语言基础捡起来。


1.错误处理

Rust 中的两类错误处理:panic 和 Result。

  • 普通错误使用 Result 类型来处理。Result 通常用以表示由程序外部的事物引发的错误,比如错误的输入、网络中断或权限问题。
  • panic 针对的是另一种错误,即那种永远不应该发生的错误。

1.1 panic

当程序遇到下列问题的时候,就可以断定程序自身存在 bug,故而会引发 panic:

  • 数组越界访问;
  • 整数除以 0;
  • 在恰好为 Err 的 Result 上调用 .expect();
  • 断言失败。

panic!() 是一种宏,用于处理程序中出现错误的情况。

如果panic真的发生了,那么该怎么办呢?
Rust 为你提供了一种选择。Rust 既可以在发生 panic 时展开调用栈,也可以中止进程。

为什么是 Result

现在我们已经足够了解为何 Rust 会优先选择 Result 而非异常了。以下是此设计的几个要点。

  • Rust 要求程序员在每个可能发生错误的地方做出某种决策,并将其记录在代码中。这样做很好,否则容易因为疏忽而无法正确处理错误。

  • 最常见的决策是让错误继续传播,而这用单个字符 ? 就可以实现。因此,错误处理管道不会像在 C 和 Go 中那样让你的代码混乱不堪,而且它还具有可见性:在浏览一段代码时,你一眼就能看出错误是从哪里传出来的。

  • 是否可能出错是每个函数的返回类型的一部分,因此哪些函数会失败、哪些不会失败非常清晰。如果你将一个函数改为可能出错的,那么就要同时更改它的返回类型,而编译器会让你随之修改该函数的各个下游使用者。

  • Rust 会检查 Result 值是否被用过了,这样你就不会意外地让错误悄悄溜过去。

  • 由于 Result 是一种与任何其他数据类型没有本质区别的数据类型,因此很容易将成功结果和错误结果存储在同一个集合中,也很容易对“部分成功”的情况进行模拟。

2. create与模块

3. 宏

4. 不安全代码

5. 外部函数

相关推荐

  1. Rust基础拾遗--辅助功能

    2024-02-11 20:12:02       34 阅读
  2. Rust基础拾遗--并发和异步编程

    2024-02-11 20:12:02       24 阅读
  3. Rust基础拾遗--看的不多只看一篇--基础

    2024-02-11 20:12:02       32 阅读
  4. Android 辅助功能 -抢红包

    2024-02-11 20:12:02       18 阅读
  5. 自动驾驶右向辅助功能规范

    2024-02-11 20:12:02       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-11 20:12:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-11 20:12:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-11 20:12:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-11 20:12:02       20 阅读

热门阅读

  1. rust递归遍历磁盘目录及文件

    2024-02-11 20:12:02       35 阅读
  2. GraphicsMagick 的 OpenCL 开发记录(三十六)

    2024-02-11 20:12:02       30 阅读
  3. PVST详解

    2024-02-11 20:12:02       30 阅读
  4. 关于LLaMA Tokenizer的一些坑...

    2024-02-11 20:12:02       31 阅读
  5. 蓝桥杯2023年第十四届省赛真题----棋盘

    2024-02-11 20:12:02       38 阅读
  6. 【Linux】Ubuntu 22.04 升级 nodejs 到 v18

    2024-02-11 20:12:02       29 阅读
  7. fpga 需要掌握哪些基础知识?

    2024-02-11 20:12:02       27 阅读