在Swift中存在这样的关键字:try?和try!,他们的应用场景是什么呢?
try?:
1.应用场景:在函数或者方法抛出异常时,可以把异常转成一个可选类型,会返回一个nil,程序不会崩溃;如果程序正常,则会返回一个正确的可选类型;
eg:let anyObject = try? NSJSONSerialization.JSONObjectWithData(jsonData, options: .MutableContainers)
2.格式:let+属性+ try?+函数或者方法;
3.注意点:返回的是可选类型,注意和其他的方法混合使用时出现多次包裹可选类型的解包问题。
try!:
1. 意义:打错错误的传播链,try!打破了错误传播链条,但是如果真的发生错误就出现运行期错误,导致程序的崩溃。
2.格式:let+属性+ try!+函数或者方法;
3.注意点:如果真的发生错误就出现运行期错误,导致程序的崩溃。