在之前的示例中,multiply
中的 panic 并不是健壮的代码。通常,我们希望将错误返回给调用者,以便调用者可以决定如何正确响应错误。
我们首先需要知道我们处理的是哪种错误类型。要确定 Err
类型,我们查看 parse()
,它使用 FromStr
trait 为 i32
实现。因此,Err
类型被指定为 ParseIntError
。
在下面的示例中,直接的 match
语句导致代码总体上更加繁琐。
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
幸运的是,Option
的 map
,and_then
以及许多其他组合器也为 Result
实现了。Result
包含完整的列表。
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX