Error Handling #2
https://doc.rust-lang.org/book/error-handling.html
文字列を整数にパースするときのエラーハンドリング。
use std::num::ParseIntError; fn double_number(number_str: &str) -> Result<i32, ParseIntError> { number_str.parse::<i32>().map(|n| 2 * n) } fn main() { match double_number("10") { Ok(n) => assert_eq!(n, 20), Err(err) => println!("Error: {:?}", err), } match double_number("a") { Ok(n) => assert_eq!(n, 20), Err(err) => println!("Error: {:?}", err), } }
$ cargo run Finished debug [unoptimized + debuginfo] target(s) in 0.0 secs Running `target/debug/5_7_error_handling` Error: ParseIntError { kind: InvalidDigit }