try:和可选类型相似,编译器强制我们在使用可能跑出错误的房时使用try关键字。
try?:有点类似于可选型中的可选链,如果方法正确,则完整执行;如果跑出错误,则方法提前结束,但不会抛出错误进行处理。
try!:类似于可选型中的强制解包,同样不会对错误进行处理,但是一旦方法抛出错误,就会造成程序的崩溃。
使用try?、try!都不需要再写do{} 和catch{}
defer:讲必须执行的逻辑放在defer{}中,可以保证无论方法从哪个出口结束,defer{}中的代码都会执行,通常会将defer{}放在方法体的最上方,defer代码段总是在方法生命周期的最后才执行。