スウィフト4:
に従って:
https://developer.apple.com/documentation/foundation/nserror
カスタム例外を定義したくない場合は、次のように標準のNSErrorオブジェクトを使用できます。
import Foundation
do {
throw NSError(domain: "my error description", 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)")
}
}
プリント:
Caught NSError: The operation could not be completed, my error description, 42
User info:
key=ui1, value=12
key=ui2, value=val2
これにより、任意のタイプのカスタム文字列に加えて、数値コードと必要なすべての追加データを含む辞書を提供できます。
注意:これはOS = Linux(Ubuntu 16.04 LTS)でテストされています。