■ Error 구조체의 kind 메소드를 사용해 서로 다른 에러를 처리하는 방법을 보여준다.
▶ 예제 코드 (RS)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
use std::fs; use std::io; let result : Result<fs::File, io::Error> = fs::File::open("hello.txt"); let file : fs::File = match result { Ok(file) => file, Err(ref error) if error.kind() == io::ErrorKind::NotFound => { match fs::File::create("hello.txt") { Ok(file2) => file2, Err(error2) => { panic!("Tried to create file but there was a problem: {:?}", error2); } } }, Err(error) => { panic!("There was a problem opening the file: {:?}", error); } }; |