7个版本
0.1.6 | 2024年7月1日 |
---|---|
0.1.5 | 2024年3月27日 |
0.1.3 | 2024年2月27日 |
0.1.0 | 2023年12月27日 |
#2139 in 过程宏
182 每月下载量
用于 conerror
4KB
81 行
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–700KB
~17K SLoC