10 个版本 (4 个破坏性更新)
使用旧的 Rust 2015
0.5.1 | 2018年8月3日 |
---|---|
0.5.0 | 2018年7月27日 |
0.4.1 | 2018年6月18日 |
0.3.0 | 2018年5月30日 |
0.1.0 | 2018年5月13日 |
在 #failure 中排名 60
每月下载量 5,465
在 128 个 crate 中使用
12KB
69 行(不包括注释)
exitfailure - 在 main() 中方便地使用 ? 的 newtype 包装器
exitfailure
提供了一些 newtype 包装器,以帮助在 main()
中使用 ?。
它旨在与 rust 1.26 及以上版本的 "? in main()" 功能一起使用(请参阅跟踪问题)。
此库导出的主要项目包括
-
ExitFailure
:围绕failure::Error
的包装器,允许从 main 打印 ?,显示更友好的错误信息,包括任何可用的上下文和回溯。 -
ExitDisplay<E>
:围绕E: std::fmt::Display
的包装器,允许从 main 发出的错误信息使用Display
而不是Debug
。
有关更多信息,包括有关类型的更多详细信息,请参阅API 文档。
示例
#[macro use] extern crate failure;
extern crate exitfailure;
use failure::ResultExt;
use exitfailure::ExitFailure;
fn main() -> Result<(), ExitFailure> {
Ok(some_fn()?)
}
fn some_fn() -> Result<(), failure::Error> {
let error = Err(failure::err_msg("root cause failure"));
Ok(error.context("this is some context".to_string())?)
}
当执行时,这将打印
Error: this is some context
Info: caused by root cause failure
如果设置了环境变量 RUST_BACKTRACE=1,则打印将包括被包装的 failure::Error
提供的任何回溯信息。
许可证
根据以下任一许可证授权:
- Apache 许可证第 2 版 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
供您选择。
贡献
除非您明确表示,否则根据 Apache-2.0 许可证定义的,您有意提交以包含在作品中并由您提供的内容,将按照上述方式双许可,不附加任何额外条款或条件。
依赖关系
~64KB