在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