Swift捕获不同的错误类型

示例

让我们为该示例创建我们自己的错误类型。

2.2
enum CustomError: ErrorType {

    case SomeError

    case AnotherError

}

func throwing() throws {

    throw CustomError.SomeError

}

3.0
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.2
do {

    try somethingMayThrow()

} catch let custom as CustomError {

    print(custom)

} catch let error as NSError {

    print(error)

}

3.0

在Swift 3中,无需显式向下转换为NSError。

do {

    try somethingMayThrow()

} catch let custom as CustomError {

    print(custom)

} catch {

    print(error)

}

以上是 Swift捕获不同的错误类型 的全部内容, 来源链接: utcz.com/z/323806.html

回到顶部