快速错误处理

根据Apple的说法:错误处理是响应程序错误状态并从错误状态中恢复的过程。 Swift为运行时引发,捕获,传播和操作可恢复错误提供了一流的支持。

我们使用枚举对错误进行建模。 enum需要符合Error协议,这使我们能够将值与每种case相关联,并用于错误处理。 例如,这是我们如何表示失败电话的错误情况:

 列举CallError:错误{ 
案例号
外壳没有足够的电池电量
}

通过在函数末尾添加throws ,我们可以指定函数可以引发错误。 一旦函数抛出错误,我们就可以catch该错误并使用do-try块进行处理。

根据Apple的说法:要表明函数,方法或初始化程序可能引发错误,请在函数的参数后面的声明中编写throws关键字。 标有throws的函数称为throwing函数 。 如果函数指定了返回类型,则在返回箭头( -> )之前编写throws关键字。

因此,根据该定义以及上面创建的错误,我们创建一个函数来throws

  func doACall()引发{ 
如果lostInTheWoods {
抛出CallError.noSignal
}否则,如果batteryNeedsMoreJuice {
抛出CallError.noEnoughBatteryPower
}

打印(“所有称职的妈妈”)
}

如果在执行调用时我们发现lostInTheWoodsbatteryNeedsMoreJuicetrue ,则此函数将throw错误。 这基于CallError枚举。

为了捕获和处理CallError.noSignalCallError.noEnoughBatteryPower我们需要在do-catch块中try

 做{ 
尝试doACall()
}捕获CallError.noSignal {
打印(“爬山”)
}捕获CallError.noEnoughBatteryPower {
打印(“插入手机”)
}

考虑到如果没有错误, catch块将被忽略,您可以通过catch块识别函数抛出的错误。

您可以在此处查看游乐场代码。

资料来源:

  • 错误处理
  • 错误处理简介

我希望您喜欢这篇文章,并且总体上觉得它很有用。 并且不要犹豫,留下反馈或任何问题。 谢谢!