在Swift中存在這樣的關鍵字:try?和try!,他們的應用場景是什麼呢?json
try?:函數
1.應用場景:在函數或者方法拋出異常時,能夠把異常轉成一個可選類型,會返回一個nil,程序不會崩潰;若是程序正常,則會返回一個正確的可選類型;spa
eg:let anyObject = try? NSJSONSerialization.JSONObjectWithData(jsonData, options: .MutableContainers)blog
2.格式:let+屬性+ try?+函數或者方法;it
3.注意點:返回的是可選類型,注意和其餘的方法混合使用時出現屢次包裹可選類型的解包問題。io
try!:table
1. 意義:打錯錯誤的傳播鏈,try!打破了錯誤傳播鏈條,可是若是真的發生錯誤就出現運行期錯誤,致使程序的崩潰。程序
2.格式:let+屬性+ try!+函數或者方法;方法
3.注意點:若是真的發生錯誤就出現運行期錯誤,致使程序的崩潰。im