也许我只是完全想多了,但我正在尝试使用枚举来处理来自我正在集成的 API 的错误。
从这个 API 的 swagger 文档中,我可以看到所有可能返回的响应。我把这些写成一个BaseError
枚举:
enum BaseError: Error {
case badRequest // 400
case unauthorized // 401
case forbidden // 403
case unhandledError // XXX
...
}
现在在我的客户中是我的问题开始的地方。
我最初的希望是采用这个BaseError
枚举并根据我所在的客户扩展/添加其他案例。
就像是:
enum ClientSpecificError: BaseError {
case clientError
}
这将允许我返回一个错误,例如ClientSpecificError.unauthorized
现在我知道这是不可能的,因为枚举不能继承其他枚举,但我对如何实现这一点缺少一些理解。
问题
还有其他方法可以使用枚举来实现吗?
这甚至是“最佳实践”吗?