Rust入坑指南:亡羊补牢

本文是Rust编程的入门指南,重点讨论如何处理程序错误,包括基础概念,Option枚举用于处理可能的缺失值,Result枚举处理真正的错误,以及 Panic 机制在错误处理中的作用。文章详细解释了Option的使用方法,如expect和unwrap系列方法,以及Result的处理方式,如try!宏和问号操作符。此外,还介绍了Rust中线程恐慌的原理和catch_unwind方法。
摘要由CSDN通过智能技术生成

如果你已经开始学习Rust,相信你已经体会过Rust编译器的强大。它可以帮助你避免程序中的大部分错误,但是编译器也不是万能的,如果程序写的不恰当,还是会发生错误,让程序崩溃。所以今天我们就来聊一聊Rust中如何处理程序错误,也就是所谓的“亡羊补牢”。

基础概念

在编程中遇到的非正常情况通常可以分为三类:失败、错误、异常。

Rust中用两种方式来消除失败:强大的类型系统和断言。

对于类型系统,熟悉Java的同学应该比较清楚。例如我们给一个接收参数为int的函数传入了字符串类型的变量。这是由编译器帮我们处理的。

关于断言,Rust支持6种断言。分别是:

  • assert!
  • assert_eq!
  • assert_ne!
  • debug_assert!
  • debug_assert_eq!
  • debug_assert_ne!

从名称我们就可以看出来这6种断言,可以分为两大类,带debug的和不带debug的,它们的区别就是assert开头的在调试模式和发布模式下都可以使用,而debug开头的只可以在调试模式下使用。再来解释每个大类下的三种断言,assert!是用于断言布尔表达式是否为true,assert_eq!用于断言两个表达式是否相等,assert_ne!用于断言两个表达式是否不相等。当不符合条件时,断言会引发线程恐慌(panic!)。

Rust处理异常的方法有4种:Option 、Result<T, E>、线程恐慌(Panic)、程序终止(Abort)。接下来我们对这些方法进行详细介绍。

Option

Option 我们在 Rust入坑指南:千人千构一文中我们进行过一些介绍,它是一种枚举类型,主要包括两种值:Some(T)和None,Rust也是靠它来避免空指针异常的。

在前文中,我们并没有详细介绍如何从Option 中提取出T,其实最基本的,可以用match来提取。而我也在前文中给你提供了官方文档的链接&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值