Avatar
Avatar
koher
上層のエラーをハンドリングする際に、下層のエラーの詳細に応じてハンドリングすることが誤りではないですか?それぞれの層に準じたセマンティクスがあるはずで、その層のセマンティクスではなく、下層のエラーに対してハンドリングをするのは、カプセル化された実装の中身が漏れ出しているのでは?
例えば Decodable が投げる DecodingError がキャッチできたとしても、内部処理のどのタイミングで発生したのかわからん、みたいな状況は、その指摘に該当するかなと思います。 サーバーから返ってきたJSONが仕様と違った、だけとは限らなくて、内部のキャッシュシステムが持ってるメタデータが壊れていた、のかもしれない。みたいな。 (edited)
11:56 PM
「層による意味付け」がされていれば、 enum E { case responseDecodingError(DecodingError); case cacheSystemError(any Error) } みたいになっててわかりそう。