Skip to content

Swift 自定义错误类型

本文描述了使用 Swift 编写应用时, 如何创建自定义错误类型

定义错误类型

swift
enum CustomError: LocalizedError {
    case decodeJsonFailed
    case unknown
    case badHttpStatus(status: Int, message: String)
    
    var errorDescription: String? {
        switch self {
        case .decodeJsonFailed:
            return NSLocalizedString("Decode json failed", comment: "")
        case .unknown:
            return NSLocalizedString("unknown error occurred", comment: "")
        case .badHttpStatus(let status, let message):
            return NSLocalizedString("status = \(status), message = \(message)", comment: "")
        }
    }
}

使用错误类型

swift
func createItem() throws {
  guard let ... else {
    throw CustomError.decodeJsonFailed
  }
  ...
}