Rust从入门到实战系列三百零四:Result and panic

Learning resources:
English: Rust Book 9.1, 9.2
简体中文: Rust语言圣经 - 返回值和错误处理
panic!
Rust 中最简单的错误处理方式就是使用 panic 。它会打印出一条错误信息并打印出栈调用情况,最终结束
当前线程:
若 panic 发生在 main 线程,那程序会随之退出
如果是在生成的( spawn )子线程中发生 panic, 那么当前的线程会结束,但是程序依然会继续运行

  1. 🌟🌟
    // 填 空
    fn drink(beverage: &str) {
    if beverage == “lemonade” {
    println!(“Success!”);
    // 实 现 下 面 的 代 码
    __
    }
    println!(“Exercise Failed if printing out this line!”);
    }
    fn main() {
    drink(__);
    println!(“Exercise Failed if printing out this line!”);
    }
    常见的 panic
  2. 🌟🌟
    // 修 复 所 有 的 panic, 让 代 码 工 作
    fn main() {
    assert_eq!(“abc”.as_bytes(), [96, 97, 98]);
    let v = vec![1, 2, 3];
    let ele = v[3];
    let ele = v.get(3).unwrap();
    // 大 部 分 时 候 编 译 器 是 可 以 帮 我 们 提 前 发 现 溢 出 错 误 , 并 阻 止 编 译 通 过 。 但 是 也 有 一 些 时 候 , 这
    let v = production_rate_per_hour(2);
    divide(15, 0);
    println!(“Success!”)
    }
    fn divide(x:u8, y:u8) {
    println!(“{}”, x / y)
    }
    fn production_rate_per_hour(speed: u8) -> f64 {
    let cph: u8 = 221;
    match speed {
    1…=4 => (speed * cph) as f64,
    5…=8 => (speed * cph) as f64 * 0.9,
    9…=10 => (speed * cph) as f64 * 0.77,
    _ => 0 as f64,
    }
    }
    pub fn working_items_per_minute(speed: u8) -> u32 {
    (production_rate_per_hour(speed) / 60 as f64) as u32
    }
  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值