1 表示并拋出錯(cuò)誤:
錯(cuò)誤用通過(guò)符合ErrorType協(xié)議的類型的值來(lái)表示,通過(guò)throw拋出一個(gè)錯(cuò)誤

2 處理錯(cuò)誤:四種方式處理錯(cuò)誤
1)通過(guò)拋出錯(cuò)誤將處理錯(cuò)誤放置到調(diào)用該方法的地方處理
此方法拋出錯(cuò)誤,在需要調(diào)用的地方處理錯(cuò)誤
func lastEmement(array: [Int]) throws -> Element {
guard array == nil || (array != nil && array.count == 0) {
throw ErrorType
}
guard var element: Int = array.lastElement() else {
throw ErrorType
}
}
func getLastElement() {
try lastElement() // 此處拋出的錯(cuò)誤將繼續(xù)傳遞下去
}
2)通過(guò) do-catch 處理錯(cuò)誤

3)將錯(cuò)誤作為可選類型處理

4)斷言此錯(cuò)誤不可能發(fā)生
let var error = try! someThrowFunc()
3 指定清理操作(defer): 使用defer語(yǔ)句在即將離開(kāi)當(dāng)前代碼塊時(shí)執(zhí)行一系列語(yǔ)句, 此語(yǔ)句不管是何種原因退出break、return或者發(fā)生錯(cuò)誤等都將執(zhí)行
