티스토리 뷰

do-try-catch문에서 throw를 하기 위한 error 타입을 가장 간단하게 어떻게 정의할 수 있을까?

enum VendingMachineError: Error {
    case invalidSelection
    case insufficientFunds(coinsNeeded: Int)
    case outOfStock
}

공식 문서에서는  enum 타입으로 정하길 권장한다.

 

 

Default: 별도로 정의하지 않고 NSError을 사용하는 방법

import Foundation

do {
  throw NSError(domain: "my error domain", code: 42, userInfo: ["ui1":12, "ui2":"val2"] ) 
}
catch let error as NSError {
  print("Caught NSError: \(error.localizedDescription), \(error.domain), \(error.code)")
  let uis = error.userInfo 
  print("\tUser info:")
  for (key,value) in uis {
    print("\t\tkey=\(key), value=\(value)")
  }
}

 

 

[출처]

https://docs.swift.org/swift-book/documentation/the-swift-programming-language/errorhandling/

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함