可投擲的啟動器

使用錯誤處理將 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
}