iOS Error Handling in Swift Error Handling Handling Errors

Victor O'Rourke
Victor O'Rourke
2,303 Points

Error Handling: creating this function with enum case members

Just need a push on what im jacking up here. Thanks in advance everyone!!

error.swift
enum ParserError: Error {
  case emptyDictionary
  case invalidKey
}

struct Parser {
  var data: [String : String?]?

  func parse(practice: ParserError) throws {
  guard let dat = nil else {
  throw ParserError.emptyDictionary
  }
  guard let somekey = data.keys else {
  throw ParserError.invalidKey
  }

  }
}

let data: [String : String?]? = ["someKey": nil]
let parser = Parser(data: data)

1 Answer

Nick Frozz
Nick Frozz
31,281 Points

Hi Victor,

In your syntax 1st "guard" says that "data = nil" and if it's not "nil" - it throws an ....emptyDictionary error . // While you need to do opposite thing.

In 2nd "guard" you need to check a specific dictionary "data" for an exact key ["someKey"] also task description suggests you assign it to a "keys" property; If "someKey" doesn't exist throw an error ....invalidKey.

GL with the solution!