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

2 處理錯(cuò)誤:四種方式處理錯(cuò)誤
1)通過拋出錯(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)通過 do-catch 處理錯(cuò)誤

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

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