Swift:错误处理

注意:
  • 可以定义枚举或结构体,但是都得遵守Error的协议;
  • 一个函数可以通过在声明中添加 throws 关键词来抛出错误消息。当你的函数能抛出错误消息时, 你应该在表达式 中前置 try 关键词;
  • 使用 do-catch 块对错误进行捕获,当我们在调用一个 throws 声明的函数或方法时,我们必须把调用语句放在 do 语句块中,同时 do 语句块后面紧接着使用 catch 语句块。

特别指出:如果不特别声明,catch会有一个默认的error参数来表示捕获到的错误。当然,你也可以如下例那样重新定义一个捕获到的错误的名字。

enum MyErrorEnum: Error {
    case errorLessThanZero
    case errorMoreThanTen
}

struct MyErrorStruct: Error {
    var errCode: Int = 0
    var localDes: String {
        return "The error code is \(errCode)"
    }
}

func mzTestFunc(number: Int) throws -> Int {
    if number < 0 {
        throw MyErrorEnum.errorLessThanZero
    } else if number < 10 {
        throw MyErrorEnum.errorMoreThanTen
    } else if number == 11 {
        throw MyErrorStruct(errCode: 11)
    }
    return number
}

do {
    let res = try mzTestFunc(number: 13)
    print(res)
} catch let err {
    print(err)
}

猜你喜欢

转载自blog.csdn.net/weixin_34217711/article/details/86963193
今日推荐