错误枚举
你可能感觉上一练习的解答有些笨拙:基于字符串进行匹配并不理想!如果同事修改了Ticket::new
返回的错误信息(例如为了提高可读性),突然之间,你的调用代码就会出错。
你已经知道了修复这个问题所需的方法:枚举!
针对错误做出反应
当你希望允许调用者根据发生的特定错误采取不同行为时,你可以使用枚举来表示不同的错误情况:
使用错误枚举,你将不同的错误情况编码进了类型系统中——它们成为了可失败函数签名的一部分。这简化了调用者的错误处理,因为他们可以使用match
表达式针对不同的错误情况进行反应:
参考资料
- 本节练习位于
exercises/05_ticket_v2/08_error_enums