#error #error-handling #any #peace #handle #keep #0-sized

已删除 any-error

当你只想在和平中使用 ?

0.1.0 2019年9月1日

#39#peace

MPL-2.0 许可证

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 格式化它,保存格式化的结果,并丢弃错误。

考虑到它比其他类型更昂贵,并且仍然丢失了大量信息,我可能最不推荐使用这个类型。

无运行时依赖