【发布时间】:2018-05-02 11:51:23
【问题描述】:
也许我只是想得太多了,但我正在尝试使用枚举来处理来自我正在集成的 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 这样的错误
现在我知道这是不可能的,因为枚举不能继承其他枚举,但我对如何实现这一点缺少一些理解。
问题
还有其他方法可以使用枚举来实现吗?
这甚至是“最佳实践”吗?
【问题讨论】:
标签: ios swift error-handling enums associated-value