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 生日高考祝福语妹妹简短
13 下飞机祝福语简短英文
14 元宵发客户祝福语简短
15 爸妈金婚文案祝福语简短
16 新郎朋友红包祝福语简短
17 虎年五一祝福语大全简短
18 出阁宴祝福语姐姐简短