0.1.0 |
|
---|
#39 在 #peace
7KB
99 行
Any Error:当你只想在和平中使用 ?
你是否曾经想要像酷炫的孩子一样使用 ?
来处理错误,但 Rust 总是烦你,说你的错误类型不能转换成你的返回错误类型?我也是,所以我创建了这个包,有3级“让我用 ?
试试看!”
SomeError
这个0字节大小的类型丢失了所有关于遇到的 Err 的信息:它只是简单地丢弃错误的内容。
实际上,使用 Result<T, SomeError>
与使用 Option<T>
相同,只是你返回一个 Result
,它有一个酷炫的 "unused_must_use" 检查。
AnyError
这个错误类型实际上只是将错误装箱到 Box<dyn Any>
,并在你需要恢复错误时允许你进行下转型。
如果你需要比“发生了 Some Error”更复杂的东西,并且你的所有错误类型都实现了 Any
(大多数类型都这样做),我建议使用这个。
FormattedError
这个类型让你能够保留更多关于错误的信息,至少在运行时:它只是用 core::fmt::Debug
格式化它,保存格式化的结果,并丢弃错误。
考虑到它比其他类型更昂贵,并且仍然丢失了大量信息,我可能最不推荐使用这个类型。