Avatar
Avatar
omochimetaru
そのレイヤーのセマンティクスで抽象化されたエラー型が定義され
例えばAPI呼び出しなら、通信のレベルと、JSONを処理するレベル、APIに応じたバリデーションのレベル、みたいに整理する、という事でしょうか? そうだったとして、この抽象化されたエラー型の中に、具体的な実装に依存したエラー型が渡せるように、 any Error が混ざり込みませんかね? // こういうのは列挙できたとしても・・・ enum ProtocolError { case brokenJSON case invalidFormat(String) ... } enum APICallError { case protocolError(ProtocolError) // ↓こっちは実装変更に対応しようとすると列挙できない case networkError(any Error) }
はい、その場合は any Error が混ざってしまうか、実装に依存した型がassociated valueに現れると思います。