为了展示出堆栈信息,需要设置下面的环境变量:
export RUST_BACKTRACE=1
# 演示如何使用 anyhow
cargo run --bin anyhow
# 演示如何使用 thiserror
cargo +nightly run --bin thiserror
# 演示如何使用 snafu
cargo run --bin snafu
# 演示如何使用 snafu-lib 这个库
cargo run --bin snafu-client
# 演示如何使用 thiserror-lib 这个库
cargo run --bin thiserror-client
这里给出了一个推荐的类库错误实现方式,采用 Snafu 实现,内部 Error 信息做了隐藏,通过暴露 ErrorKind 来暴露细节。
逻辑同 snafu lib,只是改用 thiserror 来实现