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 祝福语驱散霉运的话简短