티스토리 뷰
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/