Swift错误处理,虽然有什么错误?

时间:2015-09-24 04:57:18

标签: error-handling swift2

我在swift 2.0错误处理中找到的每个指南都显示了自定义类的处理错误。我知道该怎么做,尝试,捕捉,但我不知道的是要抓住什么。我知道我正在测试某些枚举以指示错误,但如果我没有创建该类,我在哪里或如何找到这些错误枚举?

我正在使用

 class func JSONObjectWithData(_ data: NSData,
                      options opt: NSJSONReadingOptions) throws -> AnyObject

所以它说它会抛出,我想处理它,但它抛出了什么?我怎么知道catch块中要捕获的枚举?毫无疑问,我错过了一些显而易见的东西,但是当你无法发现它时,你知道它是什么样的吗?

感谢

2 个答案:

答案 0 :(得分:1)

对于Apple框架中的方法,请查看文档并将方法签名与其Objective-C等效项进行比较。

在这种特定情况下,Objective-C等价物是

+ (id)JSONObjectWithData:(NSData *)data
             options:(NSJSONReadingOptions)opt
               error:(NSError * _Nullable *)error

因此catch语句中的对象是NSError对象

do {
  let jsonData = try JSONObjectWithData(someData, options:NSJSONReadingOptions())
} catch let error as NSError {
  print(error)
}

答案 1 :(得分:0)

并且,如果您保证它应该返回对象,那么您可以使用下面的代码:

let jsonDataObject = try! JSONObjectWithData(someData, options:NSJSONReadingOptions())

在这里,我们可以避免使用" do {} "语法范围