-1
use std::error::Error;
use std::fs::File;
fn main() {
try_main().unwrap();
}
fn try_main() -> Result<(), Box<Error>> {
try!(check_file("andre"));
Ok(())
}
fn check_file(user: &str) -> Result<(), Box<Error>>{
let suspend_file_name = format!("{}{}", "/var/cpanel/suspended/", user);
let suspend_file = try!(File::open(suspend_file_name));
Ok(())
}
而且收到此錯誤:
Running `target/debug/test`
thread '<main>' panicked at 'called `Result::unwrap()` on an `Err` value: Error { repr: Os { code: 2, message: "No such file or directory" } }', ../src/libcore/result.rs:731
An unknown error occurred
我想這應該返回一個錯誤?我正在使用Rust 1.3,不知道我做錯了什麼。
如果你能發佈一個編譯和展示這個錯誤的完整程序,它會更有幫助。我認爲問題出在你發佈的代碼片段上(也許你誤解了'try!'的作用) – Adrian
'File :: open' 100%**不會恐慌**如果文件不存在。 [這是證明](http://is.gd/0uy4H0)。 – Shepmaster
偏離主題,但您應該使用['PathBuf'](http://doc.rust-lang.org/std/path/struct.PathBuf.html)來構建路徑而不是'format!'。 – Shepmaster