Rustも呼び出し階層全てでどのエラーが発生しうるか型で管理しないといけないからJavaの検査例外と同じ面倒臭さがある

面倒臭いからといって全部Result<T, Box<dyn Error>>にしちゃうと何のエラーが発生するのか分からなくなってしまう

面倒臭さと堅牢さのトレードオフ