引入 ?
panic!
,不过我们已经决定要尽可能避免 panic 了。- 返回它,因为
Err
就意味着它已经不能被处理了。
use std::num::ParseIntError;
fn multiply(first_number_str: &str, second_number_str: &str) -> Result<i32, ParseIntError> {
let first_number = try!(first_number_str.parse::<i32>());
Ok(first_number * second_number)
fn print(result: Result<i32, ParseIntError>) {
match result {
Ok(n) => println!("n is {}", n),
}
}
fn main() {
print(multiply("10", "2"));
print(multiply("t", "2"));
}