这段代码第三行表示直接取出Result中的值,如果Result中包含错误,就直接使程序退出,并引发一个panic。第四行与第三行类似,但它在退出的时候会附带上一些消息。 unwrap: thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "系统找不到...
foo();// unused `std::result::Result` that must be used} 代码在调用foo函数时,忽略了返回值Result,因为Result上有must_use标注,所以Rust的编译器在编译时会报一个警告: warning: unused `Result` that must be used --> src/main.rs:7:5 | 7 | foo();// unused `std::result::Result` that ...
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', src/libcore/result.rs:1188:5 stack backtrace: 0: backtrace::backtrace::libunwind::trace at /Users/runner/.cargo/registry/src/github.com...
letgreeting_file=File::open("hello.txt").unwrap();// 使用unwrap代替简单的match// thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os {// code: 2, kind: NotFound, message: "No such file or directory" }' 使用expect而不是unwrap并提供一个好的错误信息可以表...
thread 'main' panicked at 'Failed to open hello.txt: Error { repr: Os { code: 2, message: "No such file or directory" } }', src/libcore/result.rs:906:4 因为这个错误信息以我们指定的文本开始,Failed to open hello.txt,将会更容易找到代码中的错误信息来自何处。如果在多处使用 unwrap,则...
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: "NOT_AN_EVEN"', libcore\result.rs:945:5 note: Run with `RUST_BACKTRACE=1` for a backtrace 1. 2. 3. expect() 函数 如果出现紧急情况,程序可以返回自定义错误消息。这在以下示例中显示- ...
thread'main'panicked at'attempt to divide by zero',pirates.rs:3780note:Runwith`RUST_BACKTRACE=1`fora backtrace. 如果设置了RUST_BACKTRACE环境变量,那么就像这条消息中建议的,Rust 也会在这里转储当前的调用栈。 展开调用栈。这很像 C++ 的异常处理。
thread'main'panicked at'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }',src/libcore/result.rs:1188:5stack backtrace:0:backtrace::backtrace::libunwind::trace
嵌套match的写法有些冗余(verbose),因此,Rust 还提供了unwrap和expect方法来处理panic或者Error,这两个函数都定义在Result上。 usestd::fs::File;fnmain() {letgreeting_file_result= File::open("hello.txt").unwrap(); } thread'main' panicked at'called`Result::unwrap()` on an `Err` value: Os {...
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', src/main.rs:4:37note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace ...