2.5 `Error` Trait
05-
Error Trait — Comprehensive Rust1分钟内可阅读完
译文 · 基于 Comprehensive Rust
原文链接: https://google.github.io/comprehensive-rust/error-handling/error.html
2.5 Error Trait
有时我们希望允许返回任意类型的错误,而不自己写一个枚举去覆盖所有可能。std::error::Error trait 让你可以轻松创建能容纳任意错误的 trait 对象。
| |
讲师备注
read_count可能返回std::io::Error(来自文件操作)或std::num::ParseIntError(来自String::parse)。把错误装箱(boxing)可以少写代码,但会失去在程序里干净地区分不同错误情形的能力。因此,在库的公共 API 中一般不宜使用
Box<dyn Error>;但在只想把错误信息显示出来的应用程序中,它可能是不错的选择。定义自定义错误类型时,务必实现
std::error::Errortrait,以便它能被装箱。