Swift 3 - 抛出什么错误



我正在使用 Swift 的String。这里的参考资料说它"抛出"。

所以我得到了:

do {
    let path = Bundle.main.path(forResource: "mydata", ofType: "json")
    let json = try String(contentsOfFile: path!,
                          encoding: String.Encoding.utf8)
} catch {
    print ("error")
}

这似乎意味着它找不到我的文件。我必须检查它是否真的被捆绑在目标中。但是,我的问题是,我如何找出抛出的错误?

您可以使用泛型 Error 类来捕获它。

do {
    let path = Bundle.main.path(forResource: "mydata", ofType: "json")
    let json = try String(contentsOfFile: path!,
                          encoding: String.Encoding.utf8)
} catch {
  print(error.localizedDescription)
}

您可以在捕获块中获得免费error。只需打印该变量,例如:

catch {
    print ("error: (error)")
}

为如下错误创建一个枚举:

enum calcErrr:Error {
    case notfound
    case readOnly
}

func readJson() throws -> () {
    if let bundlePath = Bundle.main.path(forResource: "mydata", ofType: "json"),
        let bundle = Bundle(path: bundlePath),
        let path = bundle.path(forResource: "...", ofType: nil) {
        print(path)
    } else {
        throw calcErrr.notfound
    }
}
do {
     try readJson()
}
catch calcErrr.notfound{ print ("Not Found")}

相关内容

  • 没有找到相关文章

最新更新