可投掷的启动器
使用错误处理将 Struct(或类)初始值设定项作为可抛出初始值设定项:
示例错误处理枚举:
enum ValidationError: Error {
case invalid
}
你可以使用错误处理枚举来检查 Struct(或类)满足预期要求的参数
struct User {
let name: String
init(name: String?) throws {
guard let name = name else {
ValidationError.invalid
}
self.name = name
}
}
现在,你可以通过以下方式使用 throwable 初始化程序:
do {
let user = try User(name: "Sample name")
// success
}
catch ValidationError.invalid {
// handle error
}