Swift错误Error
Swift错误Error

Swift错误Error

在Swift这种,错误(Error)用于描述可预期、可恢复的失败路径。

它通常用于表示网络可能失败、文件可能不存在、输入可能不合法等业务或环境的不确定性。

基本定义

Error是Swift标准库中的一个协议,表示该类型可以被throw,并被catch。

public protocol Error {}

只有遵循Error的类型,才能出现在throw错误中。

错误通常使用枚举类型,例如:

enum TestError: Error {
    case test
}

这使用枚举的原因为,枚举是“有限集合”对应可数的失败原因,在catch或switch中,编译器可以检查错误是否有遗漏分支。

枚举还支持携带上下文信息:

enum FileError: Error {
    case notFound(path: String)
    case unreadable
    case permissionDenied
}

捕获错误

Swift提供throws、try、catch等方法,用于捕获可能存在的错误Error。

1、throws:表示该函数在语义上可能失败:

func loadFile() throws -> Data

这表示调用者需要面对可能出现的错误Error。

2、try:表示调用可能失败:

let data = try loadFile()

3、catch:处理失败:

do {
    try loadFile()
} catch {
    print(error)
}

Swift在设计层面,强制显示处理失败路径。

总结

Swift中的Error使用类型系统处理失败路径,并在失败时抛出Error:

throw TestError.test
   

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开发者。

欢迎加入我们的 微信交流群QQ交流群,交流更多精彩内容!
微信交流群二维码 QQ交流群二维码

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注