8 个版本
0.1.9 | 2024年7月1日 |
---|---|
0.1.8 | 2024年3月27日 |
0.1.5 | 2024年2月27日 |
0.1.1 | 2024年1月29日 |
0.1.0 | 2023年12月27日 |
#737 in Rust 模式
每月 87 次下载
8KB
119 行
Conerror
conerror
是一个 Rust 库,旨在自动向错误添加上下文,通过在错误消息中包含文件名、行号和函数名,使问题追踪和调试更加容易。
功能
- 自动向错误添加上下文。
- 与实现 std::error::Error 的任何错误类型兼容。
- 提供详细的错误跟踪。
示例
以下是一个基本示例,演示如何使用 conerror 宏向错误添加上下文
use conerror::conerror;
use std::fs::read;
fn main() {
if let Err(e) = func1() {
println!("{}", e);
}
}
#[conerror]
fn func1() -> conerror::Result<()> {
func2()?;
Ok(())
}
#[conerror]
fn func2() -> conerror::Result<()> {
Read.read()?;
Ok(())
}
struct Read;
#[conerror]
impl Read {
#[conerror]
fn read(&self) -> conerror::Result<()> {
read("/root")?;
Ok(())
}
}
输出
运行上述示例时,将产生以下输出
Permission denied (os error 13)
#0 src/main.rs:28 untitled::Read::read()
#1 src/main.rs:18 untitled::func2()
#2 src/main.rs:12 untitled::func1()
依赖关系
~260–710KB
~17K SLoC