("error: {}", error), // }; let f = File::open("Rust.txt").unwrap(); } 报错信息: thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "系统找不到指定的文件。" }', src\libcore\result.rs:1165:5 stack backt...
返回自定义的error:CustomError fn get_super_error() -> Result<(), CustomError> { Err(CustomError { err: ChildError }) } fn main() { match get_super_error() { Err(e) => { println!
use std::error::Error;use std::fs::File;fn main() -> Result<(), Box<dyn Error>> {let f = File::open("hello.txt")?;Ok(())} 这样就能使用 ? 提前返回了,同时我们又一次看到了Box 特征对象,因为 std::error:Error 是 Rust 中抽象层次最高的错误,其它标准库中的错误都实现了该特征,因此...
ErrorKind的成员是各种io错误原因,比如NotFound,PermissionDenied… 因此如果函数返回io::Result,失败时返回的是io::Error时,就可以调用kind方法,进一步匹配不同的错误原因进行不同处理。 usestd::fs::File;usestd::io::ErrorKind;fnmain() {letf = File::open("hello.txt").unwrap_or_else(|err| {matcher...
fn main() { match divide(10, 2) { Ok(result) => println!("Result: {}", result), Err(e) => println!("Error: {}", e), } } 在这个例子中,divide函数使用Result类型返回除法操作的结果。如果除数为零,返回Err;否则返回Ok包裹的商。
usestd::fs::File;fnmain(){letgreeting_file_result=File::open("hello.txt");} File::open 的返回值是 Result<T, E>。泛型参数 T 会被 File::open 的实现放入成功返回值的类型 std::fs::File,这是一个文件句柄。错误返回值使用的 E 的类型是 std::io::Error。这些返回类型意味着 File::open 调...
错误返回值使用的 E 的类型是std::io::Error。 `File::open`` 调用可能成功并返回一个可以读写的文件句柄,也可能会失败,如文件不存在或无访问权限。 需要在代码中增加根据 File::open 返回值进行不同处理的逻辑: usestd::fs::File;fnmain() {letgreeting_file_result= File::open("hello.txt");letgree...
use std::io::Error;fnmain(){letpath="/tmp/dat";//文件路径matchread_file(path){//判断方法结果Ok(file)=>{println!("{}",file)}//OK 代表读取到文件内容,正确打印文件内容Err(e)=>{println!("{} {}",path,e)}//Err代表结果不存在,打印错误结果}}fnread_file(path:&str)->Result<String,...
[allow(unused)]use std::fs::File;use std::io::ErrorKind;fnmain(){letf=File::open("hello.txt");letf=match f{Ok(file)=>file,Err(error)=>match error.kind(){ErrorKind::NotFound=>match File::create("hello.txt"){Ok(fc)=>fc,Err(e)=>panic!("Problem creating the file: {:?}"...
thread 'main' panicked at 'NOT_AN_EVEN', main.rs:9 note: Run with `RUST_BACKTRACE=1` for a backtrace. 1. 2. 输出枚举 枚举结果 - <T,E>可用于处理可恢复的错误,它有两个变体-OK和Err,T和E是通用类型参数,T表示在OK变量中成功情况下将返回的值的类型,E表示在Err变量中失败情况下将返回的错...