6 个版本 (3 个破坏性更新)
0.5.1 | 2022年3月1日 |
---|---|
0.5.0 |
|
0.4.0 | 2022年2月13日 |
0.3.2 | 2021年9月9日 |
0.2.0 | 2021年6月29日 |
#995 in Rust 模式
14KB
159 行
ebacktrace
欢迎使用 ebacktrace
🎉
此crate实现了一个简单的错误包装器,在创建时捕获堆栈跟踪,并可以携带错误的可选文本描述。
示例
use ebacktrace::define_error;
use std::fmt::{ self, Display, Formatter };
/// The error kind
#[derive(Debug, Copy, Clone)]
enum ErrorKind {
MyErrorA,
Testolope
}
impl Display for ErrorKind {
fn fmt(&self, f: &mut Formatter) -> fmt::Result {
write!(f, "{:#?}", self)
}
}
// Define our custom error type
define_error!(Error);
/// A function that will always fail
fn will_fail() -> Result<(), Error<ErrorKind>> {
Err(ErrorKind::Testolope)?
}
// Will panic with a nice error
if let Err(e) = will_fail() {
eprintln!("Error: {:?}", e);
panic!("Fatal error")
}
功能
此crate目前有一个功能门
force_backtrace
(默认禁用):如果启用force_backtrace
,则无论是否设置了RUST_BACKTRACE
,都会捕获堆栈跟踪。
依赖关系
~2.5–3.5MB
~72K SLoC