可投掷的启动器

使用错误处理将 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
}