上位概念: Rust, ライブラリ

anyhow はエラー処理を簡単にかけるようになる Rust のクレート

Tips

エラーとその原因となった値を合わせて表示する

例えば変数 foo の内容を URL としてパースするとき、

Url::parse(foo)
.with_context(|| format!("invalid URL: {}", foo))

ではなく

Url::parse(foo)
.with_context(|| foo.clone())
.context("invalid URL")

のように、エラーメッセージとその原因となった値を2つのContextに分けて書いておくと良い

エラーログとして

invalid URL

Caused by:
	(foo の内容)

のように表示される。このように、コードの記述も簡単になるし、エラーがある程度構造化されるので便利である。