美文网首页
Swift:错误处理

Swift:错误处理

作者: 春暖花已开 | 来源:发表于2019-01-08 10:36 被阅读16次
注意:
  • 可以定义枚举或结构体,但是都得遵守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)
}

相关文章

网友评论

      本文标题:Swift:错误处理

      本文链接:https://www.haomeiwen.com/subject/dchvrqtx.html