Swift捕获不同的错误类型
示例
让我们为该示例创建我们自己的错误类型。
2.2enum CustomError: ErrorType {3.0case SomeError
case AnotherError
}
func throwing() throws {
throw CustomError.SomeError
}
enum CustomError: Error {case someError
case anotherError
}
func throwing() throws {
throw CustomError.someError
}
Do-Catch语法允许捕获引发的错误,并自动error在catch块中创建一个可用的常量名称:
do {try throwing()
} catch {
print(error)
}
您还可以自己声明一个变量:
do {try throwing()
} catch let oops {
print(oops)
}
也可以链接不同的catch语句。如果可以在Do块中引发几种类型的错误,这将很方便。
在这里,Do-Catch首先将尝试将错误转换为CustomError,然后将其视为NSError自定义类型不匹配的错误。
2.2do {3.0try somethingMayThrow()
} catch let custom as CustomError {
print(custom)
} catch let error as NSError {
print(error)
}
在Swift 3中,无需显式向下转换为NSError。
do {try somethingMayThrow()
} catch let custom as CustomError {
print(custom)
} catch {
print(error)
}
以上是 Swift捕获不同的错误类型 的全部内容, 来源链接: utcz.com/z/323806.html