MST

星途 面试题库

面试题:Rust中Result类型与错误传播

编写一个Rust程序,包含多个函数调用,其中一些函数可能会返回`Result`类型表示的错误。要求将错误正确地从底层函数传播到调用栈顶层,并在顶层进行统一处理,同时要展示如何使用`?`操作符来简化错误传播代码。
15.3万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
fn divide(a: i32, b: i32) -> Result<i32, &'static str> {
    if b == 0 {
        return Err("division by zero");
    }
    Ok(a / b)
}

fn complex_operation() -> Result<i32, &'static str> {
    let num1 = 10;
    let num2 = 0;
    let result1 = divide(num1, num2)?;
    let result2 = divide(result1, 2)?;
    Ok(result2)
}

fn main() {
    match complex_operation() {
        Ok(result) => println!("The result is: {}", result),
        Err(e) => println!("Error: {}", e),
    }
}