Swift捕获和切换模式用于显式错误处理
例子
class Plane {
enum Emergency: ErrorType {
case NoFuel
case EngineFailure(reason: String)
case DamagedWing
}
var fuelInKilograms: Int
//...未显示init和其他方法
func fly() throws {
//...
if fuelInKilograms <= 0 {
//呃哦
throw Emergency.NoFuel
}
}
}在客户端类中:
let airforceOne = Plane()
do {
try airforceOne.fly()
} catch let emergency asPlane.Emergency{
switch emergency {
case .NoFuel:
//致电最近的机场紧急降落
case .EngineFailure(let reason):
print(reason) //让机械师知道原因
case .DamagedWing:
//评估损失并确定总统是否可以做到
}
}
热门推荐
10 诗词送行祝福语大全简短
11 新房开工吉日祝福语简短
12 50多岁生日简短祝福语
13 安徽疫情祝福语简短英语
14 农民朋友发财祝福语简短
15 对生活祝福语简短精辟
16 搬家词简短祝福语朋友
17 女神结婚快乐祝福语简短
18 文学短句祝福语大全简短